admin管理员组文章数量:1530033
2024年5月31日发(作者:)
c++的static关键字用法
C++中的`static`关键字有多种用法,在不同的场景下都有着不同的含义和作用。本
文将详细介绍C++中`static`关键字的用法及其相关特性,希望能对读者更好地理解和运
用这个关键字。
一、`static`关键字概述
`static`是C++中的一个关键字,它常用于指定函数、变量、类成员等的作用域和生
命周期。它的主要作用如下:
1. 限定变量的作用域。使用`static`关键字声明的变量具有静态的生存期和块作用
域,即在整个程序运行期间都存在,并且只能在声明变量的源文件中访问。
2. 限定函数的作用域。使用`static`关键字声明的函数具有静态的作用域,即只能
在声明它的源文件中调用。
3. 限定类成员的作用域。使用`static`关键字声明的类成员为静态成员,它不属于
类的任何一个对象,而是属于整个类,可以通过类名或类对象来访问。
4. 防止符号重定义。当在多个源文件中定义同名的全局变量或函数时,使用
`static`关键字可以防止它们之间的符号重定义错误。
二、静态变量
1. 全局静态变量
使用`static`关键字声明的全局变量具有静态生存期和文件作用域,即它在程序运行
期间一直存在,而且只能在声明它的源文件中访问。例如:
```cpp
//
#include
static int count = 10; //声明全局静态变量count
void func() {
static int i = 5; //局部静态变量i,生命周期为整个程序运行期间
std::cout << "i is " << i ;
std::cout << " and count is " << count << std::endl;
i++;
count++;
}
```
在另一个源文件中引用这个全局静态变量,编译器会报错:
```cpp
//
#include
extern int count; //声明全局变量count
void func2() {
std::cout << "count is " << count << std::endl;
}
```
编译器会报错:undefined reference to `count'。这是因为全局静态变量只能在声
明它的源文件中访问,其他文件中的代码无法访问它。
如果把全局变量count声明为`extern`变量,其他源文件就可以引用它了:
```cpp
//
#include
static int count = 10; //声明全局静态变量count
void func() {
static int i = 5; //局部静态变量i,生命周期为整个程序运行期间
std::cout << "i is " << i ;
std::cout << " and count is " << count << std::endl;
版权声明:本文标题:c++的static关键字用法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1717167994a541704.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论