C++静态函数和静态变量
时间: 2025-01-13 13:51:32 浏览: 34
### 静态成员函数
在C++中,静态成员函数是通过`static`关键字声明的类成员函数。这类函数不属于任何特定的对象实例,而是属于整个类本身。因此,静态成员函数可以通过类名直接调用而无需创建对象。
#### 特征
- **访问权限**:可以被定义为公有的(public),私有的(private)或受保护的(protected)[^1]。
- **作用范围**:由于其独立于具体对象存在,所以无法访问非静态数据成员以及非静态成员函数;因为这些都需要具体的对象上下文来操作。
- **内存分配**:只有一份副本存在于程序运行期间,不会随着对象的数量增加而复制多份。
```cpp
class MyClass {
public:
static void myStaticFunction() {
std::cout << "This is a static member function." << std::endl;
}
};
int main(){
// 不需要创建MyClass的对象即可调用静态方法
MyClass::myStaticFunction();
}
```
### 静态成员变量
同样地,在C++里也可以利用`static`修饰符把某些变量标记成静态成员变量。它们具有如下特点:
#### 特征
- **初始化方式**:必须在类外部进行显式的初始化,即使已经给出了初始值也需如此做。
- **共享属性**:所有该类型的对象都共同拥有同一个静态成员变量,即无论有多少个此类别的实体存在,此变量始终只有一个拷贝。
- **生命周期**:贯穿整个应用程序执行过程,直到结束才会销毁。
```cpp
#include <iostream>
using namespace std;
class Counter {
private:
static int count; // 声明静态成员变量
public:
Counter() { ++count; } // 构造器每次新建对象时都会使计数加一
~Counter() { --count;} // 析构器减少计数值
static int getCount() {return count;}
};
// 定义并初始化静态成员变量
int Counter::count = 0 ;
int main(){
cout<< "Initial Count:"<<Counter::getCount()<< endl;
Counter c1,c2,c3;
cout<<"After creating objects:"<<Counter::getCount()<<endl;
}
```
阅读全文
相关推荐













