【问题标题】:C++ - static objects/variables used across a project vs. using pointer/reference argumentsC++ - 跨项目使用的静态对象/变量与使用指针/引用参数
【发布时间】:2015-03-29 08:09:24
【问题描述】:

我正在用 C++ 和 SDL 编写一个简单的记忆游戏(你翻牌的游戏),我发现我很难决定是否要使用这样的类:

class Game {
public:
   static StartMenu* sMenu;
   static OptionsMenu* oMenu;
   static GameBoard* board;

   static Card cards[36];
}

然后像这样引用它们

Game::menu->selectedItem = 1;

或者我应该只是构建项目,以便在某处实例化对象,然后将它们作为指针/引用传递给函数(我会弄清楚以后应该使用哪些)?像这样

void processInput(SDL_Event event, StartMenu*&*& menu) {
    ...
    menu->selectedItem = 1;
    ...
}

还是只是偏好问题?后者看起来更“干净”,但前者更灵活......

【问题讨论】:

    标签: c++ pointers reference static arguments


    【解决方案1】:

    我建议使用:

    class Game {
    public:
       StartMenu* sMenu;
       OptionsMenu* oMenu;
       GameBoard* board;
    
       Card cards[36];
    };
    

    创建Game 的实例并传递它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-19
      相关资源
      最近更新 更多