我可以在这样的类中使用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) { /*...*/ }

10-08 14:31