c++ - 如何声明两个不同的静态变量? (C++)

标签 c++ inheritance static-variables

编辑:将它们声明为私有(private)是一个打字错误,我修正了它:

关于另一个问题,如果我在一个类中声明了一个静态变量,然后从中派生了一个类,是否有任何方法可以将每个类的静态变量声明为单独的。即:

class A:
{
public:
static int x;
};
class B:A
{
public:
const static int x;
};

是否定义了两个不同的静态变量 x,一个用于 A,一个用于 B,或者我是否会在重新定义 x 时遇到错误,如果我得到一个错误,如何创建两个单独的静态变量?

最佳答案

当您使用静态变量时,显式引用它们可能是个好主意:

public class B:A
{
  public const static int x;
  public int foo()
  {
    return B::x;
  }
}

这样,即使在层次结构中“高于”您的类决定创建一个名称相似的成员,它也不会破坏您的代码。同样,在访问普通成员字段时,我通常会尝试使用 this 关键字。

已更新以使用 C++ 语法。

关于c++ - 如何声明两个不同的静态变量? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/998311/

相关文章:

c++ - 为什么我的 C++/Qt 程序不执行任何操作?

c++ - 奇怪的重复模板模式 : double inheritance

c++ - 复制 C++ 抽象类

javascript - 可以隐藏函数属性,使其在函数外不可见吗?

c++ - C++ 中的 system() 函数在一段时间内工作正常,但由于 ECHILD 错误而在一段时间内失败返回 -1。为什么?

c++ - 如何阻止我的 MFC 应用程序在启动时调用 OnFileNew()?

c++ - Unicode字符串的跨平台迭代(使用ICU计算字形)

inheritance - C# - 构造函数和继承

c++ - 定义静态全局数组以避免在函数中定义它

python - 静态变量simultaion : classes vs generators