通过static来说明,以实现相同类不同对象之间的书局共享
静态数据成员
声明:static 数据类型 数据名
定义:数据类型 类名::静态数据成员 //先声明后使用
class MyClass {
public:
static int count; // 声明
};
int MyClass::count = 0; // 定义并初始化
用来存储同一个类中的相同的信息会定义静态成员变量
分公私有(可否在类外访问)
静态成员函数
静态成员函数是类的成员函数,但它不能访问类的非静态成员(数据成员或其他静态成员函数除外)。静态成员函数只能访问静态成员。
声明和定义:
在类定义中声明和定义静态成员函数。
class MyClass {
public:
static void myStaticFunction() {
// 函数体
}
};
使用:
与静态数据成员类似,你可以通过类名和作用域解析运算符 ::
来调用静态成员函数。
MyClass::myStaticFunction(); // 调用静态成员函数
用途:
- 当你需要执行与类相关但不依赖于任何特定对象实例的操作时,静态成员函数非常有用。
- 实现工具函数或实用程序,这些函数或实用程序与类的特定实例无关,但仍然是类逻辑的一部分。
总的来说,静态成员(无论是数据成员还是函数成员)都是类级别的特性,它们与类的所有实例共享相同的存储空间,并且不能访问类的非静态成员。它们在处理类级别的信息或实现与类相关但与特定实例无关的功能时非常有用。