0

我有 3 个相互派生的类 - GameScreen 是 MenuScreen 派生自的基类。然后我有第三类“TitleScreen”,它源自“MenuScreen”。

流程基本上来自基类:'GameScreen' -> 'MenuScreen' -> 'TitleScreen'

基类“GameScreen”的构造函数中没有参数,就像“TitleScreen”一样,但是我需要“MenuScreen”的参数。我目前的头文件为:

游戏画面.h

class GameScreen
{
public:
    GameScreen();
}

菜单屏幕.h

class MenuScreen : public GameScreen
{
public:
    MenuScreen(std::string title);
}

标题屏幕.h

class TitleScreen : public MenuScreen
{
public:
    TitleScreen(std::string title) : MenuScreen(title);
}

我很难理解的是这在 C++ 中是否可行(我正在关注执行此操作的游戏状态管理的 C# 示例)。阅读某些书籍中的类继承,我只涵盖从基类继承的参数,因为我的示例基类没有参数。

4

1 回答 1

1
  1. ;每个班级声明后您都失踪了。

  2. 如果你写TitleScreen(std::string title) : MenuScreen(title)你正在定义方法的主体,但主体丢失......所以你应该把声明放到你的 TitleScreen.h :

    class TitleScreen : public MenuScreen
    {
    public:
        TitleScreen(std::string title);
    };
    

    然后将构造函数的主体放到 TitleScreen.cpp 中:

    #include "TitleScreen.h"
    
    TitleScreen::TitleScreen(std::string title) : MenuScreen(title)
    {
        // ..
    }
    

编辑:根据这个问题修复了术语。

于 2013-07-26T18:51:48.053 回答