Здравствуйте, butcher, Вы писали:
B>Здравствуйте, можно ли, сделать так:
B>создать абстрактный класс (назовём его BaseA)
B>B>class BaseA{
B> class Dummy {};
B>public:
B> virtual void Init (Dummy *pThis) = 0;
B>};
B>
B>а в его потомках переопределять Init шаблоном:
B>B>class A: public BaseA {
B> class Dummy {};
B> Dummy *m_ptr;
B>public:
B> template <class T>
B> void Init (T *pThis);
B>};
B>
B>судя по моим попыткам — нельзя, как можно такой сделать?
B>хочется чтобы мжно было обращаться к методам классов потомкам BaseA через BaseA->Init ();
Думаю нельзя, поскольку реализация чисто абстрактного метода будет определяться компиляторам по его сигнатуре в купе с именем, но шаблон не даст такой возможности.
... << RSDN@Home 1.1.2 stable >>