Daevaorn, Thanks. вообще говоря, я вроде знал, что есть специализация, я имел ввиду несколько иное. Просто я по привычке работы с множественным наследованием делал следующее:
Код | template<typename TYPE1,typename TYPE2,_size GPRAM> class Foo { public: Foo(void *param); virtual ~Foo(); public: void Func(); //... };
class Foo2 : public Foo<MYTYPE1,MYTYPE2,MYGPRAM> { public: Foo2(void *param) : Foo<MYTYPE1,MYTYPE2,MYGPRAM>::Foo(param){}; virtual ~Foo2(); public: inline void Func2(){Foo::Func();}//ы //... };
|
Что естественно не правильно, ибо наследовал я от нечто иного нежели Foo: от Foo<MYTYPE1,MYTYPE2,MYGPRAM>, привычка указывать область имен для метода здесь дорого стоит, лучше от неё отказаться ИМХО. ЗЫ я не буду специализировать родительский класс, не хочу вводить новое име, придется специализировать конструктор перед вызовом из Foo,что конечно плохо, но одно радует, что две одинаковые строчки не где-то по коду разбросаны, а следом идут, что менее опасно. |