в C ++ 11 может ли шаблонный класс получить свои методы из не шаблонного базового класса, имеющего такую же сигнатуру метода? Пример:
void DoSomething() {return;}
class MyBase {
public:
MyBase() {};
virtual void Draw() {DoSomething();};
virtual void Draw2() = 0;
}
template<int T>
class MyShape1<T> : public MyBase {
public:
MyShape1() : MyBase() {}
void Draw2();
};
class MySpape2() : public MyBase() {
MyShape2() : MyBase() {}
void Draw2();
};
template<int T>
void MyShape1<T>::MyDraw2() {
DoSomething();
}
void MyShape2::MyDraw2() {
DoSomething();
}
int main(int argn, char** argv) {
MyShape1<5> X();
MyShape2 Y();
X.Draw();
Y.Draw();
MyBase* Z;
Z = &X;
Z->Draw2();
Z = &Y;
Z->Draw2();
return 0;
}