我试图在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â
我不知道为什么要这样做,甚至不知道在哪里解决。编译器会这样说你不觉得有点奇怪吗?