Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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;
- }
Advertisement
Add Comment
Please, Sign In to add comment