【发布时间】:2015-04-18 13:32:57
【问题描述】:
我想看到的可能很奇怪,我会尽可能地澄清。我在 ubuntu 14.04 和 C++11 上使用 gcc 4.8。
我想做的是:
- 创建一个 A 类
- 在 A 类中创建一个函数,作为参数
- 指向同一类的类成员的指针
- 创建一个继承自 A 的新类 B
- 制作B类的新方法
-
将指向 B 类的方法的指针指向父类 A 的方法作为参数
class A{ typedef void(A::*METHOD); void executeMethod(METHOD arg){}; } class B : A{ void sampleMethod(){}; void childMethod(){ this->executeMethod(&B::sampleMethod); //<== error } }
然而,这给我带来了代码块中的以下错误:
error: no matching function to call for 'B::executeMethod(void B::*)'
有没有办法解决这个问题? 我还需要做些什么来向您说明我要完成的工作吗?
【问题讨论】:
标签: c++ class inheritance methods arguments