学习C 静态成员注意事宜
创始人
2024-06-22 06:10:22
0

下面文章着重介绍C++静态成员,类的静态数据成员应该在代码中被显示的初始化,一定要在类外进行,  C++静态成员和普通数据成员区别较大,体现在下面几点:

1.静态数据成员

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

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

  1. class 类名  
  2.  
  3.    {  
  4.  
  5.    ……  
  6.  
  7.    static 类型说明符 成员名;  
  8.  
  9.    ……  
  10.  
  11.    };  

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

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

类型类名::变量名=值;对于在类的public部分说明的静态数据成员,在类的外部可以不使用成员函数而直接访问,但在使用时必须用类名指明所属的类,其访问格式为:对于在类的非public部分说明的静态数据成员,则只能由类的成员函数访问,其访问方法与访问类中普通数据成员的访问方法完全一样,但在类的外部不能访问。

2.静态成员函数

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

  1. class 类名  
  2.  
  3.    {  
  4.  
  5.    …  
  6.  
  7.    static 类型 函数名(形参)  
  8.  
  9.    {   函数体   }  
  10.  
  11.    …  
  12.  
  13.    }; 

说明:

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

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

【编辑推荐】

  1. C与C++中标准输入实现方式上的一点区别
  2. C++编译器如何对Const常量进行分配存储空间
  3. C++类库设计的基本构思与方法
  4. 玩转C++语言的几种方法
  5. 如何更好的进行C++代码编制

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...