別忘記給c++類中的靜態數據成員定義!

       哈哈,好久沒有寫過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++代碼中千萬別忘記了給你的靜態數據成員定義!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章