📅  最后修改于: 2023-12-03 14:39:38.946000             🧑  作者: Mango
在C++中,静态关键字有许多用法,其中一种常见的用法是定义静态成员变量。本文将介绍静态成员变量及其使用场景。
在C++中,静态成员变量是属于类的,而不是属于类的任何一个实例。因此,无论创建多少个类实例,其静态成员变量只有一个副本。静态成员变量的用法如下:
class MyClass {
public:
static int myStaticVar;
};
在上述代码中,myStaticVar
是静态变量,可以在全局范围内进行定义和初始化,如下所示:
int MyClass::myStaticVar = 0;
需要注意的是,静态成员变量必须在类定义的外部进行初始化。在类定义内部初始化静态成员变量是不合法的。
静态成员变量可以像普通成员变量一样进行访问,但是需要使用作用域解析运算符::
,如下所示:
int main() {
MyClass::myStaticVar = 1;
return 0;
}
静态成员变量的使用场景有很多,例如:
下面以统计类实例数量为例进行介绍。
统计类实例数量的代码如下所示:
class MyClass {
public:
MyClass() {
++count;
}
static int getCount() {
return count;
}
private:
static int count;
};
int MyClass::count = 0;
int main() {
MyClass obj1;
MyClass obj2;
MyClass obj3;
std::cout << MyClass::getCount() << std::endl;
return 0;
}
在上述代码中,当创建MyClass实例时,构造函数会自动调用,将count变量的值加1。通过静态成员函数getCount()
可以获取当前类实例的数量。
本文介绍了C++中静态关键字的用法,重点介绍了静态成员变量及其使用场景。静态成员变量是一个有用的工具,可以帮助我们更好地组织和实现C++代码。