静态类成员上的未解析外部符号简单地说:我有一个类,主要由静态的公共成员组成,所以我可以将类似的函数组合在一起,这些函数仍然需要从其他类/函数中调用。无论如何,我已经在类公共范围中定义了两个静态的无符号字符变量,当我试图在同一个类的构造函数中修改这些值时,在编译时会得到一个“未解决的外部符号”错误。class test
{public:
static unsigned char X;
static unsigned char Y;
...
test();};test::test() {
X = 1;
Y = 2;}我对C+不太熟悉,所以对我放松点。为什么我不能这么做?
3 回答
![?](http://img1.sycdn.imooc.com/5333a01a0001ee5302000200-100-100.jpg)
浮云间
TA贡献1829条经验 获得超4个赞
.CPP
enums
class test {public: const static unsigned char X = 1; const static unsigned char Y = 2; ... test();};test::test() {}
.H
.CPP
class test {public: static unsigned char X; static unsigned char Y; ... test();};
unsigned char test::X = 1;unsigned char test::Y = 2;test::test(){ // constructor is empty. // We don't initialize static data member here, // because static data initialization will happen on every constructor call.}
![?](http://img1.sycdn.imooc.com/54dc06a60001ef0401000100-100-100.jpg)
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
__declspec(dllexport)
- 3 回答
- 0 关注
- 472 浏览
添加回答
举报
0/150
提交
取消