由于某种原因,我必须通过函数指针从同一个类的另一个方法调用类方法。 这是示例代码,说明了我的问题:
class testClass
{
....
private:
void method(int parameter) {
.....
};
void callingMethod();
};
typedef void (testClass::*classMethod)(int parameter);
void testClass::callingMethod() {
classMethod method = &testClass::method;
method(1);
}
我收到编译错误
错误C2064:term不评估为带有1个参数的函数。
进行此类调用的正确方法是什么?
答案 0 :(得分:0)
检查一下:
class testClass
{
public:
int method(int parameter)
{
cout << "Hi";
return 0;
};
void callingMethod();
};
int (testClass::*pt2Member)(int) = NULL;
void testClass::callingMethod()
{
pt2Member = &testClass::method;
(*this.*pt2Member)(12);
//classMethod method = &testClass::method;
//*method(1);
}
int main()
{
testClass objTest;
objTest.callingMethod();
return 0;
}
答案 1 :(得分:0)
除了
之外,你的语法是正确的method(1);
你应该使用
(this->*method)(1);
或
(*this.*method)(1);
答案 2 :(得分:0)
应该只是
(this->*method)(10);