// 示例代码:C++中static的作用和用法
#include <iostream>
using namespace std;
// 1. static全局变量
namespace {
static int globalStaticVar = 10; // 只在本文件内可见
}
// 2. static局部变量
void func() {
static int localStaticVar = 0; // 静态局部变量,只初始化一次,函数调用之间保持值
localStaticVar++;
cout << "localStaticVar: " << localStaticVar << endl;
}
// 3. static成员变量
class MyClass {
public:
static int classStaticVar; // 静态成员变量,属于类而不是对象
static void printClassStaticVar() {
cout << "classStaticVar: " << classStaticVar << endl;
}
};
int MyClass::classStaticVar = 20; // 在类外部定义并初始化静态成员变量
// 4. static成员函数
class StaticFuncDemo {
public:
static void staticMemberFunc() {
cout << "This is a static member function." << endl;
}
};
int main() {
// 测试静态局部变量
func(); // 输出: localStaticVar: 1
func(); // 输出: localStaticVar: 2
// 测试静态成员变量
MyClass::printClassStaticVar(); // 输出: classStaticVar: 20
// 测试静态成员函数
StaticFuncDemo::staticMemberFunc(); // 输出: This is a static member function.
return 0;
}
静态全局变量:
static int globalStaticVar = 10; 定义了一个静态全局变量,它只在定义它的源文件内可见,其他文件无法访问。静态局部变量:
static int localStaticVar = 0; 定义了一个静态局部变量,它只在第一次进入函数时初始化,之后每次调用函数时保留上次的值。静态成员变量:
static int classStaticVar; 定义了一个静态成员变量,它属于类本身而不是类的对象。所有对象共享同一个静态成员变量。int MyClass::classStaticVar = 20;静态成员函数:
static void staticMemberFunc() 定义了一个静态成员函数,它可以被类直接调用,而不需要创建类的对象。静态成员函数只能访问静态成员变量和其他静态成员函数。上一篇:c++ 转义字符
下一篇:c++ 集合
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站