簡體   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