我已经搜遍了这个解决方案,可能只是我不知道如何正确地将它写成文字。
我希望firstFunction
在otherFunction
的参数中声明地址时调用firstFunction
。
这是我的代码:
init.h里:
class Ainit
{
//function to be passed into firstFunction
void test();
void firstFunction( void (Ainit::*otherFunction)() );
};
init.cpp :
void Ainit::firstFunction( void (Ainit::*otherFunction)() )
{
(Ainit::*otherFunction)();
}
Xcode:指向以下行*
的错误:Expected unqualified-id
(Ainit::*otherFunction)();
如何调用firstFunction
中传递给firstFunction
的方法?
答案 0 :(得分:2)
将代码更改为:
(this->*otherFunction)();
答案 1 :(得分:0)
在声明firstFunction的参数和调用* otherFunction时,不需要Ainit ::。以下代码就可以了:
class Ainit {
void test();
void firstFunction (void * otherFunction());
};
void Ainit::test() {
std::cout << "Hello" << std::endl;
}
void Ainit::firstFunction(void * otherFunction()) {
(*otherFunction)();
}