繁体   English   中英

C ++-跨项目使用的静态对象/变量与使用指针/引用参数

[英]C++ - static objects/variables used across a project vs. using pointer/reference arguments

我正在用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;
    ...
}

还是只是偏爱问题? 后者似乎“更干净”,但前者更灵活...

我建议使用:

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

   Card cards[36];
};

创建一个Game实例并将其传递。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM