#include <vector>
#include <iostream>
class parent
{
public:
void print();
virtual void generate() = 0;
protected:
std::vector<int> seq;
};
void parent::print()
{
generate();
for (size_t i = 0; i < seq.size(); ++i)
{
std::cout << seq[i] << " ";
}
std::cout << std::endl;
}
class child1:
public parent
{
public:
void generate();
};
void child1::generate()
{
seq.assign(10, 5);
}
class child2:
public parent
{
public:
void generate();
};
void child2::generate()
{
seq.resize(10);
for (size_t i = 0; i < 10; ++i)
{
seq[i] = i;
}
}
template<typename T>
class work
{
public:
static void print();
};
template<typename T>
void work<T>::print()
{
T().print();
}
int main()
{
work<child1>::print();
work<child2>::print();
return 0;
}
Comments