首页 理论教育C++程序设计基础教程-静态数据成员

C++程序设计基础教程-静态数据成员

【摘要】:所以有时将静态数据成员称为类变量,使用静态数据成员可以节省内存空间。静态数据成员可由任意访问权限许可的函数访问。因为静态数据成员不从属于任何一个具体对象,所以必须对它初始化,而且对它的初始化不能在构造函数中进行。解:本程序的执行结果如下:s=12s=17s=35从上述执行结果可以看到,类MyClass1中静态数据成员s不是属于某个对象a、b或c,而是属于所有的对象。

静态数据成员不同于非静态的数据成员,一个类的静态数据成员仅创建和初始化一次,且在程序开始执行时创建,然后被该类的对象共享,而非静态的数据成员则随着对象的创建而多次创建和初始化。

静态数据成员是类中所有对象共享的成员,而不是某个对象的成员,也就是说静态数据成员的存储空间不是放在每个对象中,而是和成员函数一样放在类公共区中的。所以有时将静态数据成员称为类变量,使用静态数据成员可以节省内存空间。

要定义静态数据成员,只要在数据成员的定义前面增加关键字static,其定义格式如下:

static类型变量名;

对静态数据成员的操作和一般数据成员一样,定义为私有的静态数据成员是不能由外界访问的。静态数据成员可由任意访问权限许可的函数访问。可以在类的成员函数中改变静态数据成员。

因为静态数据成员不从属于任何一个具体对象,所以必须对它初始化,而且对它的初始化不能在构造函数中进行。

静态数据成员的使用方法如下:

(1)静态数据成员的初始化与一般数据成员不同,静态数据成员初始化应在类外进行,而且应在对象定义之前。其格式如下:

类型类名∷静态数据成员名=初始值;(www.chuimin.cn)

(2)在引用静态数据成员时采用如下格式:

类名∷静态数据成员名

【例3.1】分析以下程序的执行结果。

解:本程序的执行结果如下:

s=12

s=17

s=35

从上述执行结果可以看到,类MyClass1中静态数据成员s不是属于某个对象a、b或c,而是属于所有的对象。