读书人

C++类嵌套编译通过但链接时出错解

发布时间: 2012-09-11 10:49:03 作者: rapoo

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;}
[解决办法]
顶楼上的, 静态成员没有初始化
[解决办法]
探讨
C/C++ code

class test_class
{
public:
static int num;
class _count
{
public:
void set(int n)
{
num = n;
}
};
_count ……

读书人网 >C++

热点推荐