我可以在这样的类中使用typedef函数指针:
template<typename T>
class MyClass
{
public:
typedef T (*fptr)(T);
void doSomething(fptr my_fptr) { /*...*/ }
};
而且效果很好。但是如果我从这样的类继承,则如下所示:
template<typename T>
class MyClass
{
public:
typedef T (*fptr)(T);
virtual void doSomething(fptr my_fptr) = 0;
};
template<typename T>
class MyOtherClass: public MyClass<T>
{
public:
void doSomething(fptr my_fptr) { /*...*/ }
};
编译器抱怨fptr未定义。有没有办法像这样继承函数指针typedef?谢谢,
詹姆士
最佳答案
您应该能够继承这样的公共(public)typedef。
您是否尝试过类似的方法以确保编译器知道它是父类型:
void doSomething(typename MyClass<T>::fptr my_fptr) { /*...*/ }