static关键字(C++)
参考 https://blog.csdn.net/guotianqing/article/details/79828100#commentsedit
文章目录
1. 静态数据成员
1.1 概念
在类内数据成员的声明前加上 static 关键字,该数据成员就是类内的静态数据成员。其特点如下:
静态数据成员存储在全局数据区,静态数据成员在定义时分配存储空间,所以不能在类声明中定义
静态数据成员是类的成员,无论定义了多少个类的对象,静态数据成员的拷贝只有一个,且对该类的所有对象可见。也就是说任一对象都可以对静态数据成员进行操作。而对于非静态数据成员,每个对象都有自己的一份拷贝。
和普通数据成员一样,静态数据成员也遵从 public, protected, private 访问规则
由于上面的原因,静态数据成员不属于任何对象,在没有类的实例时(实例就是创建对象
)其作用域就可见,在没有任何对象时,就可以进行操作。
1.2 静态数据成员的初始化和访问
静态数据成员的初始化格式:<数据类型><类名>::<静态数据成员名>=<值>
int Myclass::sum = 0; //在类外进行初始化,不需要也不允许再加 static 关键字
类的 公有静态数据成员(私有静态数据成员只能通过类的方法访问
)有两种访问方式:
<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>
class Myclass
{
static