如何调用成员函数C ++的指针

时间:2014-09-25 07:37:54

标签: c++

我从这段代码的xcode得到了预期的nonqualified-id。 我正在使用cocos2d-x 3.x,但它与此问题无关。

CCNode.h中的

virtual float getGlobalZOrder() const { return _globalZOrder; }

在我的cpp

typedef float (Node::*SomeFunc)() const;
SomeFunc f = &Node::getGlobalZOrder;
Node * node = .....;
node->(*f)();  <-Expected unqualified-id

为什么我收到编译错误?

2 个答案:

答案 0 :(得分:0)

.*->*之类的指向成员指针的解引用操作符是一个完整的运算符,您不能按()分隔它们。你可以试试这个:

(node->*f)();

答案 1 :(得分:0)

使用如下:

typedef float (Node::*SomeFunc)() const;
SomeFunc f = &Node::getGlobalZOrder;
Node * node = new Node();
float x = (node->*f)();