当前位置:首页 C++ > 正文

c++ 静态成员变量

作者:野牛程序员:2023-08-08 19:48:36 C++阅读 2616

C++ 中的静态成员变量是类的成员,但与类的实例无关,它被类的所有实例共享。静态成员变量在类的所有实例之间保持唯一的副本,它属于类本身而不是类的实例。静态成员变量可以用于表示类范围的属性或状态。

以下是一些关于 C++ 静态成员变量的基本概念和用法:

  1. 声明和定义: 静态成员变量需要在类的定义外部进行声明和定义,以便为其分配内存。

  2. // 在类的定义内部声明静态成员变量
    class MyClass {
    public:
        static int staticVar;  // 静态成员变量的声明
    };
    // 在类的定义外部定义静态成员变量
    int MyClass::staticVar = 0;  // 静态成员变量的定义和初始化
  3. 访问静态成员变量: 静态成员变量可以通过类名或类的实例来访问。

  4. int value = MyClass::staticVar;  // 使用类名访问静态成员变量
    MyClass obj;
    int value2 = obj.staticVar;       // 使用类的实例访问静态成员变量(不推荐)
  5. 共享性质: 所有类的实例共享相同的静态成员变量。

  6. 初始化: 静态成员变量可以在类内部初始化,但通常需要在类的外部定义时进行初始化。

  7. 静态成员函数: 静态成员变量通常与静态成员函数一起使用,静态成员函数是类范围的函数,它可以访问类的静态成员变量,但不能访问非静态成员变量。

    class MyClass {
    public:
        static int staticVar;
    
        static void staticFunction() {
            // 可以访问静态成员变量
            staticVar = 10;
            // 不能访问非静态成员变量
            // int localVar = regularVar;  // 这是错误的
        }
    };
    
    int MyClass::staticVar = 0;

静态成员变量可以用于表示类的属性、统计信息、全局状态等,因为它们在类的所有实例之间共享。请注意,静态成员变量和非静态成员变量的访问方式和使用方式略有不同,需要根据实际情况进行选择。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击