类的数据成员的 const、static等类型的声明和定义常识
1 #include <iostream> 2 #include<string> 3 using std::cout; 4 using std::endl; 5 using std::string; 6 7 class A 8 { 9 public: 10 11 // (1) 12 // 声明,定义(初始化)可以都在类定义体内;也可以仅在类定义体内声明,在类外部定义。 13 // static const int 和 const static int 貌似是一样的。 14 static const int a=1; 15 const static int b=2; 16 static const int c; 17 18 // (2) 19 // 单纯的const成员初始化方法只有一种,在构造函数后加":( )"并赋值。 20 const int d; 21 22 // (3) 23 // 其他的static成员只能在类定义体内声明,在类外部定义。 24 static const string str1; 25 static string str2; 26 27 // (3) 28 // 普通成员(非静态)的声明定义只能在类定义体内 29 int e; 30 31 A() 32 :d(3) 33 { 34 e=4; 35 } 36 }; 37 38 // 定义、初始化 c 39 const int A::c =1; 40 41 //定义、初始化 str1和str2 42 const string A::str1="101"; 43 string A::str2="101"; 44 45 int main() 46 { 47 A s; 48 49 cout<<s.a<<endl; 50 cout<<s.b<<endl; 51 cout<<s.c<<endl; 52 cout<<s.d<<endl; 53 cout<<s.str1<<endl; 54 cout<<s.str2<<endl; 55 56 return 0; 57 }
补充一下:static成员,与类相关,与对象无关。
**************************************************************
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]