#include #include class parent { public: void print(); virtual void generate() = 0; protected: std::vector 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 class work { public: static void print(); }; template void work::print() { T().print(); } int main() { work::print(); work::print(); return 0; }