我是新的C++,我不完全理解靜態變量的概念。 我有一個類中的靜態變量。類中的靜態變量和內存分配及其使用
class FCCommunication : public OEMThread
{
public:
FCCommunication();
static bool MASTER;
}
我使用初始化我的代碼和分配內存到FCCommunication
源文件中以下兩個語句
FCCommunication * FCObject = 0;
FCObject = new FCCommunication();
現在我的問題是,如果我嘗試訪問MASTER變量會發生什麼在這樣完成對象和內存分配之前
if(FCCommunication::MASTER)// this gets called before dynamic memory allocation.
{
//do something here.
}
很多初學者的書籍和教程都將靜態成員變量描述爲*類成員變量*。這是因爲它們屬於*類*而不是該類的任何特定實例。這就是你需要分別定義靜態成員變量的原因。這又意味着您可以在創建任何實例之前使用靜態成員變量(或靜態成員函數)。 –
所以如果我把它叫做這個FCObject-> MASTER而不是FCC通信:: MASTER會有什麼區別?它會破壞我的操作系統?考慮同樣的分配情況。 – SPandya
您在使用受保護模式操作系統的現代系統上所做的任何操作都不會影響操作系統。並且使用特定的實例來訪問一個靜態成員是不尋常的,但不是無效的。 –