文章

C++ static

C++ static

static有两种类别:

  • 静态变量: 函数中的变量,类中的变量
  • 静态类的成员: 类对象和类中的函数

静态变量

函数中的静态变量

当变量声明为static时,变量的空间将在程序的生命周期内分配

即使多次调用该函数,静态变量的空间也只分配一次

类中的静态变量

类中声明为static的变量只被初始化了一次,在单独的静态存储中分配了空间,所以类中的静态变量由对象共享

对于不同的对象,不能有相同静态变量的多个副本,因此静态变量不能使用构造函数初始化。

静态成员

类对象为静态

像变量一样,对象也在声明为static时具有范围,直到程序的生命周期结束才进行析构

类中的静态函数

就像类中的静态数据成员或静态变量一样,静态成员函数也不依赖于类的对象。

允许使用对象和.来调用静态成员函数,但建议使用类名和范围解析运算符::来调用静态成员函数

本文由作者按照 CC BY 4.0 进行授权