console.h で静的変数を宣言し、console.cpp で定義しようとしています。変数を呼び出す行は次のとおりです。
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â
なぜこれを行うのか、どこでそれを理解するのかさえわかりません。また、コンパイラがこれを言うのは少し奇妙だと思いませんか?