本文共 1265 字,大约阅读时间需要 4 分钟。
#includeusing namespace std;/* * 规则: * 1、static 变量:声明在类中,定义赋值在类外 * 2、const 变量:由于要进入符号表,在类中声明的时候就得赋值定义 * 3、const static:在类外赋值的时候去掉static关键字 * (1)某些类型:char,short,int,long可以选择方式1 or 2 * (2)某些类型:float、double 选择方式1,必须在类外赋值定义 * 4、static const:在类外赋值的时候去掉static关键字 * (1)某些类型:char,short,int,long可以选择方式1 or 2 * (2)某些类型:float、double 选择方式1,必须在类外赋值定义*/class A { public: const static int num1; // const static 第(1)种类型声明 const static int num2 = 2; // const static 第(2)种声明和初始化 const int num3 = 3; static int num4; const static float num5; // 只能在类外面初始化,数据类型限:float double static const int num6 = 6; // 声明和初始化 static const float num7; // 声明 A():num3(3333) { // this->num3 = 6666666; 错误的方式 // 初始化列表可以覆盖const 类型的值。加了static不属于类,不可以构造函数初始化。 }};const int A::num1 = 1; // const static(1)类型定义并初始化//const int A::num2 = 2222222; // 定义并初始化,和第10行二选一,数据类型限:char short int longint A::num4 = 4;const float A::num5 = 5; // 只能在类外面初始化,数据类型限:float doubleconst float A::num7 = 7; // 只能在类外面初始化,数据类型限:float doubleint main(){ cout << A::num1 << endl; cout << A::num2 << endl; A a; cout << a.num3 << endl; cout << A::num4 << endl; cout << A::num5 << endl; cout << A::num6 << endl; cout << A::num7 << endl; return 0;}
转载地址:http://decii.baihongyu.com/