在C++中,static关键字可以用于声明类的静态成员变量,这意味着该变量不属于类的任何特定实例,而是属于类本身。静态成员变量在所有实例之间共享,并且只有一份副本。
以《降世神通》为背景,我们可以创建一个简单的例子,其中一个类代表一个御术学校,而静态成员变量可以用来跟踪学校的总学生数。这里是一个代码示例:
#include <iostream>
#include <string>
class BendingSchool {
public:
static int total_students; // 静态成员变量,跟踪所有御术学校的学生总数
std::string element; // 代表学校教授的元素类型
// 构造函数
BendingSchool(std::string elem) : element(elem) {
// 每次创建新的BendingSchool实例时,学生总数增加
total_students++;
}
};
// 初始化静态成员变量
int BendingSchool::total_students = 0;
int main() {
BendingSchool fireSchool("火烈");
BendingSchool waterSchool("水善");
BendingSchool earthSchool("土强");
BendingSchool airSchool("气和");
std::cout << "御术学院总学生数: " << BendingSchool::total_students << std::endl;
return 0;
}
在这个例子中,无论我们创建多少个BendingSchool的实例,total_students都会正确地反映出所有学校的学生总数。这是因为total_students是一个静态成员变量,它独立于任何特定的BendingSchool实例。