0
我想在console.h中聲明一個靜態變量並在console.cpp中定義它。調用變量的行是:C++靜態聲明
ok = CheckIoEditMinMax(0,Console::_tabsize, curpos, 0, insert,
20-Console::_tabsize,20, offset) && ok;
我已經知道能夠通過它,但編譯器不喜歡我這樣做。例如,我已經聲明它是這樣的:
/*Edited*/
namespace cio{
class Console{
public:
static unsigned int _tabsize; //Under public so it can be reached by the main.
//inside the console class in cio namespace
};
}
然後在CPP文件中定義是這樣的:
/*Edited - Also No it is not Const */
namespace cio{
unsigned int Console::_tabsize = 4;
}
但是編譯器仍然不喜歡這一點,是這樣說:
console.cpp:8:32: error: âunsigned int cio::Console::_tabsizeâ is not a
static member of âclass cio::Consoleâ
我不知道爲什麼要這樣做,甚至在哪裏弄清楚。另外,編譯器會說這個你不覺得有點奇怪嗎?
在你的代碼中放上更多的上下文。這個類,名稱空間等等。 – Rod
那麼,編譯器清楚地說'_tabesize'不是成員,也許有理由呢? –
嘗試刪除cpp中的'static',只是「unsigned int Console :: _tabize = 4;」。此外,請確保tabize是類控制檯的一個字段(我認爲控制檯是一個類;如果它是一個命名空間,請嘗試「命名空間控制檯{unsigned int Console :: _tabsize = 4;}」cpp –