c++ - 为什么在使用 menu_selector 时是 "Class::method"而不仅仅是 "method"?

标签 c++ cocos2d-x

我有这样一个类:

class A
{
    public:
         A();
         ~A();

         bool init(); 
    private:

         void LeftCallback(CCObject* sender);     
}

在我的初始化方法中,我尝试使用以下方法创建一个 menu_selector:

menu_selector(LeftCallback);

问题是这行不通。我必须提供类范围以使其以这种方式工作:

menu_selector(A::LeftCallback);

为什么我在这种情况下被迫添加类作用域而不是仅仅使用方法名称?

提前致谢。

最佳答案

基本上,因为语言要求您这样做。

我不太清楚为什么要这样决定,但它确实有助于避免函数和方法指针之间的歧义,甚至对于阅读您的代码的人来说也是如此。

关于c++ - 为什么在使用 menu_selector 时是 "Class::method"而不仅仅是 "method"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19138935/

相关文章:

java - 将 AdView 移至底部,Cocos2dx Activity

android - Cocos2dx Assets 被默认的 HelloWorld 包取代

c++ - 是否可以在 Cocos2d-x 中更改标签字体大小?

c++ - 使用Boost的两个3d线串的 map 几何相交

c++ - cv::Mat 构造函数在哪里显式定义?

c++ - 在 std::thread 中 joinable() 然后 join() 线程安全吗?

c++ - 在共享内存中存储许多变量

c++ - 无法渲染 Quake 3 map

c++ - 如何通过按下按钮调用第二个类的第一个类的方法?

java - "this"的重要性