前言:
现在你们对“静态成员变量怎么赋值出来”大约比较关注,大家都需要了解一些“静态成员变量怎么赋值出来”的相关内容。那么小编在网摘上汇集了一些对于“静态成员变量怎么赋值出来””的相关文章,希望我们能喜欢,兄弟们一起来了解一下吧!静态成员变量初始化
静态成员变量可以初始化,但只能在类体外进行初始化。如:
long long student::number = xxx26572996; //在类体外对静态成员变量赋值
其一般形式为:
数据类型 类名::静态成员变量名 = 初值;
不必在初始化赋值语句中加 static。
注意:不可以在构造函数的参数初始化表中对静态成员变量初始化,例如:
student(char* pn, char* pa, int n):number(n)
{
strcpy(name, pn);
strcpy(addr, pa);
}
在构造函数中,对static类型的number成员进行初始化,是错误的操作。
如果未对静态成员变量赋值,则编译系统会自动赋初值为0。
如果一个成员变量定义为const类型,同时,也是static类型,那么,应该怎么样初始化?有如下的分析:
(1) static类型的成员变量,需要在类外进行初始化;
(2) const类型的成员变量,需要在构造函数的初始化列表进行初始化;
那么,const类型的static成员变量,不可以在构造函数的初始化列表中进行初始化,例如:
提示 student::number成员变量是static类型,仅仅在定义的时候可以初始化。所以,不可以在构造函数列表中初始化。所以,在类外对static类型的成员变量进行初始化,程序测试代码如下:
所以,可以在类外对const类型的静态成员变量进行初始化。
注意:对于const 类型的static成员变量,可以在定义它的时候进行初始化,如下:
在student类内对number成员进行初始化。这是合法的语句。
标签: #静态成员变量怎么赋值出来