C++ static 关键字
定义和用法
static 关键字是一个修饰符,它使属性或方法属于类本身,而不是类的实例。该属性或方法在所有类的实例之间共享。
static 关键字还有另一个用途。它允许函数内部的变量在多次函数调用之间保持其值,如下例所示。
实例
例子 1
静态属性的值在类的实例之间共享:
class MyClass {
public:
static int x;
int y;
int sum() {
return x + y;
}
};
int MyClass::x = 5;
int main() {
MyClass myObj1;
myObj1.y = 3;
MyClass myObj2;
myObj2.y = 5;
cout << myObj1.sum() << "\n";
cout << myObj2.sum() << "\n";
return 0;
}
例子 2
static 关键字允许变量在函数结束后保持其值:
int add(int myNumber) {
static int total = 0;
total += myNumber;
return total;
}
int main() {
cout << add(5) << "\n";
cout << add(2) << "\n";
cout << add(4) << "\n";
cout << add(9) << "\n";
return 0;
}