gpt4 book ai didi

c++ - 如何将我的 AppDelegate 定义为它实例化的类的实例变量?

转载 作者:行者123 更新时间:2023-11-30 03:04:11 26 4
gpt4 key购买 nike

我正在启动一个 C++ 项目(使用 Cocos2d-x,但并不重要),我的 AppDelegate 在其中创建一个 IntroMenu 对象。我想将 AppDelegate 定义为我的 IntroMenu 类的实例变量,但我没能成功...

这是我的 IntroMenu 的定义方式:

IntroMenu.h

class  IntroMenu : public cocos2d::CCLayerColor
{
public:
AppDelegate* _app;
//etc...
}

IntroMenu.m

CCScene* IntroMenu::scene()
{
CCScene *scene = CCScene::node();
IntroMenu *layer = IntroMenu::node();
scene->addChild(layer);
return scene;
}

当我从我的 AppDelegate 实例化 IntroMenu 时,我在 AppDelegate 中像这样进行:

introScene = IntroMenu::scene();
((IntroMenu*)introScene)->_app = this;

_app 是 IntroMenu 的公共(public)变量(AppDelegate 类型)。

问题是当我稍后想在 AppDelegate 的其他方法中使用它时,_app 是一个空指针。

如何正确实例化 IntroMenu 及其变量 _app

谢谢!!

最佳答案

我认为正确答案是:

AppDelegate *aD = ((AppDelegate*)CCApplication::sharedApplication());
aD->myAppDelegateMethod();

关于c++ - 如何将我的 AppDelegate 定义为它实例化的类的实例变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881400/

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