C++类嵌套,编译通过,但链接时出错
如题,看代码:
- C/C++ code
class test_class{ public: static int num; class _count { public: void set(int n) { num = n; } }; _count count;};int main( ) { test_class tcls; tcls.count.set( 20 ); return 0;}编译正常,在链接是出现以下错误:
test_cpp_class.o: In function `test_class::_count::set(int)':
test_cpp_class.cpp:(.text._ZN10test_class6_count3setEi[test_class::_count::set(int)]+0x7): undefined reference to `test_class::num'
collect2: ld 返回 1
编译失败。
[解决办法]
- C/C++ code
class test_class{ public: [color=#FF0000] static int num=0;[/color] class _count { public: void set(int n) { num = n; } }; _count count;};
[解决办法]
- C/C++ code
class test_class{ public: static int num; class _count { public: void set(int n) { num = n; } }; _count count;};// define num// 增加下一句int test_class::num = 0;int main( ) { test_class tcls; tcls.count.set( 20 ); return 0;}
[解决办法]
顶楼上的, 静态成员没有初始化
[解决办法]