static用法
1.静态变量:
使用static关键字声明的变量是静态变量,它们存储在全局数据区。与局部变量不同,静态变量在程序的整个生命周期内存在,并且只分配一次内存。
例如:
```cpp
#include<iostream>
using namespace std;
void func
count++;
cout << "count: " << count << endl;
int main
for (int i = 0; i < 5; i++)
func(;
return 0;
```
输出:
```
count: 1
count: 2
count: 3
count: 4
count: 5
```
在上面的代码中,变量count是一个静态变量,它的值在每次调用函数func时会增加。
2.静态函数:
使用static关键字声明的函数是静态函数,静态函数只能在当前文件中使用,不能被其他文件调用。
例如:
```cpp
// file1.cpp
cout << "This is a static function." << endl;
// file2.cpp
int main
return 0;
```
在上面的代码中,静态函数staticFunction只能在file1.cpp文件中使用。在file2.cpp中调用staticFunction会导致编译错误。
3.静态类成员:static修饰的变量
使用static关键字声明的类成员是静态成员,它们属于整个类,而不是类的实例。静态成员可以通过类名访问,无需创建类的实例。
例如:
```cpp
#include<iostream>
using namespace std;
class MyClass
public:
cout << "This is a static function." << endl;
}
};
int MyClass::count = 0;
int main
cout << MyClass::count << endl; // 输出0
MyClass::staticFunction(; // 输出"This is a static function."
MyClass::count = 5;
cout << MyClass::count << endl; // 输出5
return 0;
```
在上面的代码中,变量count是一个静态成员变量,它属于整个类MyClass,而不是类的实例。静态成员函数staticFunction也属于整个类,可以通过类名直接访问。
4.静态局部变量:
在函数内部使用static关键字声明的变量是静态局部变量,它们的生命周期与程序的整个生命周期相同。与普通的局部变量不同,静态局部变量只分配一次内存,即使函数被多次调用。
例如:
```cpp
#include<iostream>
using namespace std;
void func
count++;
cout << "count: " << count << endl;
int main
for (int i = 0; i < 5; i++)
func(;
return 0;
```
输出:
```
count: 1
count: 2
count: 3
count: 4
count: 5
```
在上面的代码中,变量count是一个静态局部变量,在每次调用函数func时会增加。
5.静态成员初始化:
静态成员变量可以在类外初始化,静态局部变量可以在声明时初始化。
例如:
```cpp
#include<iostream>
using namespace std;
class MyClass
public:
};
int MyClass::count = 5; // 静态成员变量的初始化
void func
cout << "num: " << num << endl;
int main
cout << MyClass::count << endl; // 输出5
func(; // 输出10
return 0;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论