gpt4 book ai didi

c++ - 如何为子类定义通用模板化创建函数

转载 作者:行者123 更新时间:2023-11-30 02:55:55 25 4
gpt4 key购买 nike

我正在开发 cocos2dx 游戏,对于每个子类/场景,我需要定义一些(宏)像这样的 CREATECOCOS2DSCENE(CustomSceneNameScreen);` 具有以下定义

 #define CREATECOCOS2DSCENE(T)\
\
static cocos2d::CCScene * scene()\
{cocos2d::CCScene * scene = new cocos2d::CCScene; scene->init(); T * layer = new T; layer->init();scene->addChild(layer); layer->release(); scene->autorelease(); return scene;}

如何避免在每个屏幕上指定宏?

最佳答案

不要为此使用宏,使用内联模板函数:

template <typename T>
inline static cocos2d::CCScene* scene()
{
cocos2d::CCScene* scene = new cocos2d::CCScene;
scene->init();
T * layer = new T;
layer->init();
scene->addChild(layer);
layer->release();
scene->autorelease();
return scene;
}

关于c++ - 如何为子类定义通用模板化创建函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com