我是C++的新手,並且正在製作一款遊戲來教自己更多。在C++中設置/獲取大量變量的良好習慣
我想聽聽您關於存儲/訪問大量變量的想法。
我到目前爲止所做的努力是試圖將我的「關鍵」變量粘貼到單獨的名稱空間中,以便我可以在整個程序中訪問它們。
這是個好主意嗎?我有強烈的感覺,它可能會回來咬我。
在此先感謝=]
編輯:我在第一年計算的學生,但我有與Java幾年的經驗.. C++是如此的不同=/
我是C++的新手,並且正在製作一款遊戲來教自己更多。在C++中設置/獲取大量變量的良好習慣
我想聽聽您關於存儲/訪問大量變量的想法。
我到目前爲止所做的努力是試圖將我的「關鍵」變量粘貼到單獨的名稱空間中,以便我可以在整個程序中訪問它們。
這是個好主意嗎?我有強烈的感覺,它可能會回來咬我。
在此先感謝=]
編輯:我在第一年計算的學生,但我有與Java幾年的經驗.. C++是如此的不同=/
組的變量到結構或類。如果你需要在你的課堂外暴露出大量的變量,那麼你必須重新考慮你的設計
你組織數據的主要武器是類:類是一個對象,它代表了你的程序的一個元素。你給它命名,給它一些變量和函數,然後在你的程序中創建它的實例。該類負責其所有數據,並可以阻止其他類訪問它。
class foo
{
public:
int iAmAPublicVariable; // <---This variable can be accessed by anyone who has access to an instance of the class
private:
int iAmAPrivateVariable; // <---- This variable can be accessed only from within the class itself.
};
控制訪問類數據的一個好方法是通過使用Getters和Setters。所以......
class foo
{
public:
int getImportantData();
void setImportantData(int);
private:
int importantData;
};
int foo::getImportantData()
{
//here I could put some validation to make sure that it's ok to give out importantData;
return importantData; //this will return a copy of importantData, so the original is still safe within the class
}
void foo::setImportantData(int newData)
{
//here I could put some validation to make sure that it's ok to overwrite importantData;
importantData = newData;
}
有了這個設置是importantData可以訪問的唯一途徑是通過get和set方法,因此類有過發生了什麼給它的最終控制權。
類應該是你的程序的基礎;如果你有大量的變量,那麼看看它們的用途以及使用它們的功能,並嘗試將這個過程分解成離散的功能區域。然後創建代表這些區域的類併爲它們提供它們所需的變量和方法。您的代碼最終應該變得更小,更易於理解,更穩定,更易於調試,更易重用,並且可以更好地表示您嘗試建模的任何內容。
大量的變量本身是一個壞主意。你應該將你的相關變量分組到類中。 – john
當我們開始編程並嘗試創建類似遊戲的東西時,我們都跳入其中 - 但從關於如何完成任務的基本教程開始真的是一個好主意。它可以在以後節省頭痛和心痛。特別是如果你想使用C++ ... – Caribou
你可以使小容器或類來存儲統計數據,速度,視覺半徑等。 –