cocos2d-x 函数指针 typedef CCLayer* (*NEWTESTFUNC)() 解释

来源:互联网 发布:伺服控制需要编程吗 编辑:程序博客网 时间:2024/06/16 18:47

本人水平有限 解释不对的地方多多谅解     


typedef CCLayer* (*NEWTESTFUNC)()    看了cocos2d-x 中的一些例子后  觉得cocos2dx中函数指针 用的非常好  ,好的东西吗?就分享一下 


typedef CCLayer* (*NEWTESTFUNC)();  // C  声明一个函数指针  这个函数指针 返回一个 CClayer 指针      (一般声明函数指针  (*fun)()    这个多加了一个 返回 类型 并且是指针类型  )

#define CF(className) create##className   //D 返回一个create##className 方法  的实例( define 没有类型判断   什么类型都行)相当于调用了一个方法

static NEWTESTFUNC createFunctions[] = {  // B   创建了一个函数 数组 (返回的是对象)     CCLayer* createFunctions【0】

    CF(SchedulerTimeScale),

    CF(TwoSchedulers),

    CF(SchedulerAutoremove),

};

TESTLAYER_CREATE_FUNC(SchedulerTimeScale)  //创建了一个 static cclayer 函数 并且开辟了空间 

TESTLAYER_CREATE_FUNC(TwoSchedulers)

TESTLAYER_CREATE_FUNC(SchedulerAutoremove)


#define TESTLAYER_CREATE_FUNC(className) \    //E  create##className()在这创建的 并且返回一个static函数

static CCLayer* create##className() \

{ return new className(); }


 CCLayer* pLayer = (createFunctions[sceneIdx])();      //A


执行的顺序是 ABCDE


 
原创粉丝点击