Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++中static的作用和用法

作者:无声飞雪   发布日期:2026-01-27   浏览:19

// 示例代码: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;
}

解释说明:

  1. 静态全局变量

    • static int globalStaticVar = 10; 定义了一个静态全局变量,它只在定义它的源文件内可见,其他文件无法访问。
  2. 静态局部变量

    • static int localStaticVar = 0; 定义了一个静态局部变量,它只在第一次进入函数时初始化,之后每次调用函数时保留上次的值。
  3. 静态成员变量

    • static int classStaticVar; 定义了一个静态成员变量,它属于类本身而不是类的对象。所有对象共享同一个静态成员变量。
    • 需要在类外部进行定义和初始化:int MyClass::classStaticVar = 20;
  4. 静态成员函数

    • static void staticMemberFunc() 定义了一个静态成员函数,它可以被类直接调用,而不需要创建类的对象。静态成员函数只能访问静态成员变量和其他静态成员函数。

上一篇:c++ 转义字符

下一篇:c++ 集合

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

c++ random函数用法

队列c++

c++freopen怎么用

c++virtual

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站