cocos2d-x 学到的变态语法

相信 很少 人见过这种 写法 大神勿喷。
(target->*selectfun)();
好奇 所以 研究了下
typedef void (Ref::*SEL_CallFunc)();
看到了这个定义。
然后 模仿写了一个出来

class MyNode{
    
public:
    MyNode(){};
    void update(){
        printf("mytest");
    }
};

    MyNode *Target = new MyNode;
    typedef void (MyNode::*MyTestFunc)();
    MyTestFunc ff = static_cast<MyTestFunc>(&Node::update);
    (Target->*ff)();

这种语法还是少用为好 否则 会让维护的 抓摸不透. 还是推荐使用c++ 11的Lambda

class MyNode{
    
public:
    MyNode(){};
    void update(){
         printf("mytest");
    }
    std::function<void ()> test;
};

MyNode *Target = new MyNode;
Target->test = std::bind(&MyNode::update,Target);
Target->test();

更多Lambda 语法 参考 这些博客 不 复制了。。。

Lambda 参考资料一
Lambda 参考资料二

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容