更改静态变量范围
Change Static Variable Scope
我在一个C++类中有一个静态变量的定义:
static SomeType MyClass::StaticVariable;
在另一个类中,我想使用这个没有 MyClass 前缀的变量。我能做到吗?如何?
您可以使用引用:
class MyOtherClass {
static SomeType &StaticVariable = MyClass::StaticVariable;
// ...
}
您必须确保在构造MyClass::StaticVariable
之前(在程序启动时)不要尝试引用MyOtherClass::StaticVariable
。
仅当"另一个类"派生自MyClass
并且StaticVariable
具有公共或受保护的可见性时,您才能执行此操作。或者,可以将该成员变量移动到其他范围,或声明引用/指针并将其指向该变量,以便以后必须执行较少的键入操作。
相关文章:
- 尝试通过多个向量访问变量时,向量下标超出范围
- 绑定派生类方法C++从实例范围之外的分隔 std::function 变量调用
- 是否可以依赖函数范围的静态变量来执行程序关闭期间调用的方法?
- 如果非动态变量被指针引用,何时超出范围?
- 为什么我的变量存在于其范围之外
- 变量超出范围后如何保留向量值?
- 将引用分配给局部变量,如果局部变量超出范围,它会超出范围吗?
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 在 c++ 中确定堆栈上的变量范围
- 如何改进一堆在已知值范围内评估变量的 else-if 条件?
- 如何从未知视图中声明范围::v3::View 变量
- 如果变量数据包含大于 vector 所有元素的整数,则仅在视觉工作室上接收"矢量下标超出范围"?
- 是否未定义将对函数范围变量的引用作为值返回
- 无法从另一个函数访问文件范围变量的内容
- 如何访问C 中的功能范围变量
- C++ 程序和范围变量
- 性能对象属性与范围变量
- 存储lambda函数,该函数将范围变量捕获为类成员以供重用
- 何时分配块范围变量
- 在 c++ 中声明一个全局范围变量 const