一个类方法通过函数指针调用另一个

时间:2014-01-02 06:04:30

标签: c++

由于某种原因,我必须通过函数指针从同一个类的另一个方法调用类方法。 这是示例代码,说明了我的问题:

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个参数的函数。

进行此类调用的正确方法是什么?

3 个答案:

答案 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);