📜  C++中的静态数据成员(1)

📅  最后修改于: 2023-12-03 14:39:59.202000             🧑  作者: Mango

C++中的静态数据成员

什么是静态数据成员

静态数据成员是指属于类而非对象的数据成员。也就是说,无论创建多少个类的对象,这些对象都共享同一个静态数据成员。我们可以使用类名来访问静态成员,而不需要创建任何对象。

定义静态数据成员

在类声明中定义静态数据成员时需要加上 static 关键字,也需要在类声明之外为其进行初始化。常见的初始化方式有两种:

// 第一种,在类声明中初始化
class MyClass{
public:
    static int count;
};

int MyClass::count = 0;

// 第二种,在类声明外初始化
class MyClass{
public:
    static int count;
};

int MyClass::count = 0;
静态数据成员的访问

在访问静态数据成员时,无论是内部或者外部,都需要使用 MyClass::count 这种形式进行访问,其中 MyClass 为类名。

#include <iostream>

class MyClass{
public:
    static int count;
};

int MyClass::count = 0;

int main(){
    std::cout << "MyClass::count = " << MyClass::count << std::endl;
    MyClass::count = 10;
    std::cout << "MyClass::count = " << MyClass::count << std::endl;
    return 0;
}

输出结果:

MyClass::count = 0
MyClass::count = 10
静态数据成员的用途

静态数据成员可以用于记录属于类的信息,例如共有多少个对象被创建等。静态数据成员还可以被用于实现单件设计模式,即确保类只有一个实例对象。

小结

静态数据成员是指属于类而非对象的数据成员。静态数据成员可以用于记录属于类的信息,例如共有多少个对象被创建等。在访问静态数据成员时需要使用 MyClass::count 这种形式进行访问。