当前位置:主页   - 电脑 - 程序设计 - C/C++
C++学习摘要之五:静态成员
来源:网络   作者:   更新时间:2012-02-17
收藏此页】    【字号    】    【打印】    【关闭

  在一个类中还可以定义静态成员,但静态成员是所有对象公有的。静态成员分为静态数据成员和静态成员函数。

   1.静态数据成员

   在类中定义静态数据成员的方法就是在该成员的前面加上关键字static.

   定义静态数据成员的语句格式如下:

   class 类名

   {

   ……

   static 类型说明符 成员名;

   ……

   };

   静态数据成员是类的所有对象共享的成员。静态数据成员所占的空间不会随着对象的产生而分配,也不会随着对象的消失而回收。对静态数据成员的操作和类中一般数据成员的操作是不一样的,定义为私有的静态数据成员不能被外界所访问。静态数据成员可由任意访问权限许可的函数所访问。

   由于静态数据成员是类的所有对象共享的,而不从属于任何一个具体对象,所以必须对类的静态数据成员进行初始化,但对它的初始化不能在类的构造函数中进行,其初始化语句应当写在程序的全局区域中,并且必须指明其数据类型与所属的类名,其初始化格式如下:

   类型 类名::变量名=值;

   对于在类的public部分说明的静态数据成员,在类的外部可以不使用成员函数而直接访问,但在使用时必须用类名指明所属的类,其访问格式为:

   类名::静态数据成员名

   对于在类的非public部分说明的静态数据成员,则只能由类的成员函数访问,其访问方法与访问类中普通数据成员的访问方法完全一样,但在类的外部不能访问。

   2.静态成员函数

   静态成员函数的定义与一般成员函数的定义相同,只是在其前面冠以static关键字,其定义格式如下:

   class 类名

   {

   …

   static 类型 函数名(形参)

   {   函数体   }

   …

   };

   说明:

   (1)类的静态成员函数只能访问类的静态数据成员,而不能访问类中的普通函数成员(非静态数据成员),因为普通数据成员只有类的对象存在时才有意义。

   (2)静态成员函数与类相联系,而不与类的对象相联系,所以,在类的外部调用类中的公有静态成员函数,必须在其左面加上“类名::”,而不是通过对象名调用公有静态成员函数。在类的外部不能调用类中的私有静态成员函数。

  系列文章:

  C++学习摘要之一:类和对象

  C++学习摘要之二:构造函数和析构函数

  C++学习摘要之三:继承和派生

  C++学习摘要之四:虚函数和多态

  C++学习摘要之六:友元函数与友元类

  C++学习摘要之七:运算符重载

  C++学习摘要之八:模板

  C++学习摘要之九:C++流和文件流

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明