2011-03-28 38 views
1

我有一個Doughnut類,eaten布爾型字段。我需要使布爾變量成爲一個全局變量,但它必須是本地的,所以我可以創建多個實例,其中有些是「吃掉」的,有些則不是。我想讓甜甜圈以圖形方式消失時,它已被吃掉本地/全局布爾問題

設置它的全球性問題是所有我的甜甜圈將被標記「吃」一吃,而且如果它是本地它不會消失時消失。我怎樣才能解決這個問題?

+0

什麼,甜甜圈? – 2011-03-28 16:22:14

+0

如果這應該是一個笑話,我不明白。 – fredoverflow 2011-03-28 16:22:38

+0

我認爲你的問題應該更好地改寫...... – 2011-03-28 16:24:15

回答

7

每個甜甜圈都有一個布爾值。

如果你有一個甜甜圈類,添加成員標記:

class Doughnut 
{ 
    bool m_bEaten; 
}; 

或者也許你不想來存儲甜甜圈的信息,這樣你就可以有一個映射;)

std::map<Doughnut, bool> Doughnuts; 

但你需要實現運營商<的甜甜圈:)

或者,如果你知道你有10個甜甜圈,你可以有一個靜態數組來保存其doughnu標誌t被吃掉:

bool eatenDoughnuts[10]; // Initialize properly. 

// Eat any doughnut you like: 
eatenDoughnuts[2] = true; 

// Check if you have eaten doughnut number 2: 
if(eatenDoughnuts[2]) 
{ 
    // Pure doughnut number 2. 
} 

或者,如果你不知道在編譯時使用動態容器甜甜圈數量:

std::vector<bool> atenDoughnuts; 

或者,使用模板元編程吃你的甜甜圈編譯時間;)

然而,這個問題是編輯,所以我們相信你有一個甜甜圈班。所以這裏有雲:

#include <vector> 

class Doughnut 
{ 
public: 
    enum Kind {VANILLA, CHOCOLATE}; // The kind of your doughnut. 

    Doughnut(Kind k = VANILLA) // VANILLA is the default. 
     : kind(k), eaten(false) {} 

    void eat() { eaten = true; } // We luv eating doughnuts. 
    bool isEaten() { return eaten; } 

private: 
    Kind kind; // The kind of your doughnut. 
    bool eaten; // Has anyone eaten it yet? 
}; 

int main() 
{ 
    // Your delicious doughnuts package :) 
    std::vector<Doughnut> deliciousDoughnuts; 

    // Go buy some delicious doughnuts. 
    deliciousDoughnuts.push_back(Doughnut(Doughnut::VANILLA)); 
    deliciousDoughnuts.push_back(Doughnut(Doughnut::CHOCOLATE)); 
    deliciousDoughnuts.push_back(Doughnut(Doughnut::VANILLA)); 

    // You love delicious chocolate doughnut? EAT IT! 
    deliciousDoughnuts[1].eat(); 

    // Check have you drooped it down or you are good! 
    if(deliciousDoughnuts[1].isEaten()) 
    { 
     // Poor chocolate doughnut... 
    } 
} 

今天樣我有點;)

+0

是的,我想過這是可以做出一個布爾值數組嗎? – himmerz 2011-03-28 16:23:36

+0

@himmerz:我認爲你需要收集甜甜圈。 – reinierpost 2011-03-28 16:24:56

+0

當然,但你可能想要一系列甜甜圈。 – 2011-03-28 16:27:22

1

我假設你有一個Doughnut類。將一個boolean成員添加到該類中,並創建一個可以更改其值的函數。

1

如果甜甜圈在食用時應該消失,你真的想要一個標誌 ?這聽起來更可能是你只想破壞 它。以圖形方式,如果您使用的是MVS或類似的軟件,則可視化將由觀察者處理,並且多福餅的分解者將通知觀察者其消失;查看對象 將照顧圖形(並且一旦從屏幕上刪除了對象,可能也會自行破壞, )。