c++中static的作用是什么
在C++中,`static`关键字有以下几种作用:
1. 静态变量:在函数内部声明的静态变量在程序运行期间只被初始化一次,并且在函数运行结束后仍然保留其值,下次再调用该函数时将继续使用上次的值。
```cpp
void func() {
static int count = 0; // 静态变量
count++;
cout << count << endl;
}
int main() {
func(); // 输出 1
func(); // 输出 2
return 0;
}
```
2. 静态函数:静态函数属于类的成员函数,它只能访问类的静态成员变量和其他静态函数,而无法访问非静态成员变量和非静态函数。静态函数不依赖于任何对象的创建,可以直接通过类名调用。
```cpp
class MyClass {
public:
static void staticFunc() { // 静态函数
staticVar = 10; // 可以访问静态成员变量
//nonStaticVar = 20; // 无法访问非静态成员变量
}
static int staticVar; // 静态成员变量
private:
int nonStaticVar; // 非静态成员变量
};
int MyClass::staticVar = 0; // 初始化静态成员变量
int main() {
MyClass::staticFunc(); // 调用静态函数
cout << MyClass::staticVar << endl; // 输出 10
return 0;
}
```
3. 静态成员变量:静态成员变量属于类的成员变量,它在程序运行期间只被初始化一次,并且在类的所有对象之间共享。可以通过类名或对象名来访问静态成员变量。
```cpp
class MyClass {
public:
static int staticVar; // 静态成员变量
};
int MyClass::staticVar = 0; // 初始化静态成员变量
int main() {
MyClass obj1;
MyClass obj2;
obj1.staticVar = 10; // 通过对象访问静态成员变量
cout << obj2.staticVar << endl; // 输出 10
cout << MyClass::staticVar << endl; // 输出 10
return 0;
}
```
总结来说,`static`关键字可以用于创建静态变量、静态函数和静态成员变量。静态变量在函数内部只初始化一次,并且保留其值;静态函数只能访问静态成员变量和其他静态函数,不依赖于对象的创建;静态成员变量在类的所有对象之间共享。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341