更改静态变量范围

Change Static Variable Scope

本文关键字:范围 变量 静态      更新时间:2023-10-16

我在一个C++类中有一个静态变量的定义:

static SomeType MyClass::StaticVariable;

在另一个类中,我想使用这个没有 MyClass 前缀的变量。我能做到吗?如何?

您可以使用引用:

class MyOtherClass {
    static SomeType &StaticVariable = MyClass::StaticVariable;
    // ...
}

您必须确保在构造MyClass::StaticVariable之前(在程序启动时)不要尝试引用MyOtherClass::StaticVariable

仅当"另一个类"派生自MyClass并且StaticVariable具有公共或受保护的可见性时,您才能执行此操作。或者,可以将该成员变量移动到其他范围,或声明引用/指针并将其指向该变量,以便以后必须执行较少的键入操作。