美文网首页
cocos2d-x 学到的变态语法

cocos2d-x 学到的变态语法

作者: windgod | 来源:发表于2016-03-15 01:07 被阅读133次

    相信 很少 人见过这种 写法 大神勿喷。
    (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 参考资料二

    相关文章

      网友评论

          本文标题:cocos2d-x 学到的变态语法

          本文链接:https://www.haomeiwen.com/subject/xboflttx.html