说一说c++中的static用法
时间: 2023-04-09 22:04:55 浏览: 62
在C语言中,static关键字有多种用法。其中最常见的用法是用于函数内部和全局变量的定义。在函数内部定义一个static变量时,该变量只会在第一次调用该函数时被初始化,之后每次调用该函数时都会保留上一次调用时的值。在全局变量的定义中,static关键字可以使该变量只在当前文件中可见,而不能被其他文件访问。此外,static还可以用于函数的定义,使得该函数只在当前文件中可见,而不能被其他文件调用。
相关问题
C++中static的用法
在C++中,static关键字有以下几种用法:
1.在函数内部使用static修饰变量,使得该变量只在该函数内部可见,不会与其他函数中同名变量冲突。
2.在类中使用static修饰成员变量或成员函数,使得该变量或函数属于类本身而非类的实例,可以通过类名来访问。此外,静态成员变量必须在类外初始化,而静态成员函数不能访问非静态成员变量或函数。
3.在文件作用域内使用static修饰全局变量或函数,使得其只在该文件内可见,不会与其他文件中同名变量或函数冲突。
4.在函数参数列表中使用static修饰参数,使得该参数只在第一次调用时分配内存,在后续调用时不再分配。
需要注意的是,static关键字的具体用法和含义在不同的情境下可能有所差异。
c++中static关键字的用法
在C++中,static关键字有多种用法,下面是两个常见的用法示例:
1. 在函数内部使用static修饰局部变量:
```cpp
#include <iostream>
using namespace std;
void increment() {
static int count = 0; // 使用static修饰局部变量
count++;
cout << "Count: " << count << endl;
}
int main() {
increment(); // 输出:Count: 1
increment(); // 输出:Count: 2
increment(); // 输出:Count: 3
return 0;
}
```
在上面的示例中,使用static修饰的局部变量count在函数调用之间保持其值,而不会被重置为初始值。
2. 在类中使用static修饰成员变量:
```cpp
#include <iostream>
using namespace std;
class MyClass {
public:
static int count; // 使用static修饰成员变量
};
int MyClass::count = 0; // 静态成员变量需要在类外进行初始化
int main() {
MyClass obj1;
MyClass obj2;
obj1.count = 5;
cout << "obj1.count: " << obj1.count << endl; // 输出:obj1.count: 5
cout << "obj2.count: " << obj2.count << endl; // 输出:obj2.count: 5
obj2.count = 10;
cout << "obj1.count: " << obj1.count << endl; // 输出:obj1.count: 10
cout << "obj2.count: " << obj2.count << endl; // 输出:obj2.count: 10
return 0;
}
```
在上面的示例中,使用static修饰的成员变量count是类的所有对象共享的,它的值在所有对象之间保持一致。