- //今天在CSDN上看到一份很好的總結,原文如下
-
- #include "stdafx.h"
- #include
- #include
- using namespace std;
- ///////////////////////////////////////////////////////////////////////////////
- class A
- {
- public:
- A()
- {
- }
- private:
- int a = 0; // 非靜態常成員
- };
- int main()
- {
- }
- // 錯誤 只有靜態的常成員纔可以在頭文件中初始化.
- //error C2864: 'A::a' : only static const integral data members can be initialized within a class
- ///////////////////////////////////////////////////////////////////////////////
- class A
- {
- public:
- A()
- {
- cout<<"a = "<<a<<endl;
- }
- private:
- static int a = 0; // 靜態但非常成員
- };
- int main()
- {
- A a;
- getch();
- }
- // 錯誤, 只有靜態的常量纔可以在頭文件中初始化.
- //error C2864: 'A::a' : only static const integral data members can be initialized within a class
- ///////////////////////////////////////////////////////////////////////////////
- class A
- {
- public:
- A()
- {
- a = 0;
- }
- private:
- const int a;
- };
- int main()
- {
- }
- // 錯誤 常成員只能在初始化列表中進行.
- //error C2758: 'A::a' : must be initialized in constructor base/member initializer list
- ///////////////////////////////////////////////////////////////////////////////
- class A
- {
- public:
- A()
- {
- cout<<"a = "<<a<<endl;
- }
- private:
- const int a; // 沒有初始化,const 成員使用之前必須在初始化列表中初始化.
- };
- int main()
- {
- A a;
- getch();
- }
- //error C2758: 'A::a' : must be initialized in constructor base/member initializer list
- ///////////////////////////////////////////////////////////////////////////////
- class A
- {
- public:
- A()
- : a(1) // 不可以在初始化列表中初始化
- {
- }
- private:
- static int a;
- };
- int main()
- {
- }
- // 錯誤 靜態成員只能在類外進行初始化,這是爲什麼來着??????忘了...
- //error C2438: 'a' : cannot initialize static class data via constructor
- ///////////////////////////////////////////////////////////////////////////////
- class A
- {
- public:
- A()
- {
- cout<<"a = "<<a<<endl;
- }
- private:
- static int a; // 沒有初始化
- };
- int main()
- {
- A a;
- getch();
- }
- // 錯誤,靜態成員不會自已初始化,使用之前要初始化.否則會產生連接錯誤
- // error LNK2001: unresolved external symbol "private: static int A::a" (?a@A@@0HA)
頭文件中的static和const成員的初…
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.