
Практическая польза от данного трюка определённо должна быть. Как придумаете, как его использовать — сообщайте.
//------------------------------------------------------------ #include using namespace std; class A { public: A() { cout << "ctor A" << endl; } virtual void foo() { cout << "foo A" << endl; } }; template class B: public T { public: B(): T() { cout << "ctor B<" << typeid(T).name() << ">" << endl; } virtual void foo() { cout << "foo B<" << typeid(T).name() << ">" << endl; } }; int main() { A * a = new B < B < B < B < B < A > > > > > ( ); a->foo(); return 0; } //------------------------------------------------------------
|
@темы:
Трюки с наследованием,
Трюки с шаблонами