我是 C++ 新手,这个问题可能看起来很无聊,因为我只是一个 Java/Actionscript3,而且我以前从未处理过与内存相关的事情。
无论如何,至于我遇到的问题:场景是一个抽象类(所以我可以从中派生并拥有多个场景,例如 MainScene 等)
我想要 SceneManager 做的是有一个指向所选场景(curSc)的指针/引用然后我会像这样设置场景: setScene(&someScene)
但据我所知,要拥有一个指针,我还必须像这样初始化它: curSc = new Scene; 但它不会让我这样做,因为 Scene 是一个抽象类..
class Scene {
public:
Scene(void){}
virtual ~Scene(void){}
virtual void update() = 0;
virtual void render() = 0;
};
class SceneManager {
public:
SceneManager(void);
~SceneManager(void);
void setScene(Scene *sc);
Scene* curSc;
}
到目前为止,在我看来,在这种情况下使用指针是错误的,它不会起作用..但我很想知道如何实现我试图在这里获得的功能
非常感谢你
按要求编辑: 这就是我尝试使用它的方式:
首先,我有一个名为 GameScene 的派生类,它是:
class GameScene : public Scene
{
public:
GameScene(void);
void render();
void update();
}
在我的 main() 函数中,我有:
GameScene gamescene;
ScreenManager manager;
manager.setScene(&gamescene);