欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关注C++细节——static类成员使用注意  

程序员文章站 2022-05-06 18:50:03
...

对于某一特定类类型的全体对象我们需要访问一个共同的变量,这个时候我们通常是在类的声明中声明一个静态变量即static变量。当然可以用一个全局变量来代替,但是用全局变量是一个很不好的习惯,重要的一点就是全局变量会破坏类的封装。然而类中static变量不像普通变量,它独立与该类的任意对象而存在,每个static数据成员与一个特定的类相关连,而非与该类的对象相关连。

一.使用类的static成员的优点:

1.static成员的名字是在类的作用域中,因此可以避免与其他类的成员或全局对象的名字发生冲突。

2.可以实施封装。static成员可以是私有成员,而全局对象不可以。

3.通过阅读程序容易看出static成员是与特定类关联的。这种可见性可以清晰地显示程序员的意图。

二.static类成员的生命与定义

static类成员在声明类的时候同时被声明,static类成员的定义应该放在该类的实现文件中。即类声明在A.h中,而类的实现放在A.cpp中则,static类型变量的定义就放在A.cpp中。

格式为<数据类型> <类名>::<static变量名>=<初始值>

三.static修饰const类型的变量

当static修饰const类型的变量时,此变量可以在类的声明中直接初始化,但是该数据成员仍然必须在定义体之外进行定义。