📅  最后修改于: 2023-12-03 15:29:52.100000             🧑  作者: Mango
在 C++ 中,static
关键字有多层含义,其中之一是变量或函数的静态声明。
静态变量声明在函数内部时,只会被初始化一次,并且在函数调用结束后也不会被销毁。这就使得这个变量拥有在函数多次调用中保持其值的能力。
void myFunction() {
static int count = 0;
count++;
cout << “Count is: ” << count << endl;
}
int main() {
myFunction(); // 输出 Count is: 1
myFunction(); // 输出 Count is: 2
myFunction(); // 输出 Count is: 3
return 0;
}
静态成员变量是类的所有实例所共享的变量,在内存中只有一份拷贝。一般情况下,静态成员变量应该在类的实现文件中声明,并在类的外部进行初始化。
class MyClass {
public:
static int count;
MyClass() {
count++;
}
};
int MyClass::count = 0;
int main() {
MyClass obj1;
MyClass obj2;
MyClass obj3;
cout << “Number of objects created: ” << MyClass::count << endl; // 输出 Number of objects created: 3
return 0;
}
静态函数可以访问静态变量或静态成员变量,但不能访问非静态变量或非静态成员变量。静态函数不需要类的实例就可以被调用。
class MyClass {
public:
static int myStaticFunction(int a, int b) {
return a + b;
}
};
int main() {
int sum = MyClass::myStaticFunction(3, 5);
cout << “Sum of 3 and 5 is: ” << sum << endl; // 输出 Sum of 3 and 5 is: 8
return 0;
}
static
关键字在 C++ 中有多种含义,其中之一是变量或函数的静态声明。静态变量只会被初始化一次,并在函数调用结束后也不会被销毁,静态成员变量是类的所有实例共享的变量,静态函数不需要类的实例就可以被调用。