别忘记给c++类中的静态数据成员定义!

来源:互联网 发布:阿里云邮箱企业版登陆 编辑:程序博客网 时间:2024/04/20 04:46
       哈哈,好久没有写过c++代码了,今天在一个c++类中定义了一个静态数据成员,结果在编译的时候总是不能通过,报出如下的一个问题:
       PartSpecialDemo error LNK2001: 无法解析的外部符号 "public: static int MyClass::COUNT" (?COUNT@MyClass@@2HA)
找了半天,才发现是这个静态数据成员惹得祸,忘记在类外面给这个静态成员变量定义了,原来静态数据成员的声明与定义是分开的,这与类非静态数据成员的声明与定义是不一样的,类非静态数据成员的声明的同时也就是定义,如下面代码所示:
     class MyClass
     {
     private:
           static int _snum;    //declare static data member,but not define
                                //static data member
           int _num;            //declare and define data member
     }

     int MyClass::_snum = 0;   //define static data member
        所以在以后的c++代码中千万别忘记了给你的静态数据成员定义!