我从这段代码的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
为什么我收到编译错误?
答案 0 :(得分:0)
.*
和->*
之类的指向成员指针的解引用操作符是一个完整的运算符,您不能按()
分隔它们。你可以试试这个:
(node->*f)();
答案 1 :(得分:0)
使用如下:
typedef float (Node::*SomeFunc)() const;
SomeFunc f = &Node::getGlobalZOrder;
Node * node = new Node();
float x = (node->*f)();