c++ - 从 2 个继承类访问静态成员

标签 c++ inheritance multiple-inheritance static-members

我有一个带有静态队列的基类:

class A : public otherClass{
protected:
    static Queue queue[SIZE];
    static int front, rear;
public:
    void funcA();
    void funcB();
 };

现在有2个类继承了这个类:

class B: public A{
public:
     void funcC();
}

class C: public A{
public: 
    void funcD();
}

我的问题是,当我实例化类 B 和 C 时,是否会有队列的 1 个实例并且 B 和 C 都指向它,或者 B 和 C 是否会有单独的实例?

最佳答案

队列是静态的——在整个程序中只有它的一个实例,无论您创建了多少个 A 的子类或实例。

就内存布局而言,静态成员与在任何类外部声明的全局变量没有什么不同(除了名称修改)。

关于c++ - 从 2 个继承类访问静态成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16395972/

相关文章:

Java:从子类调用 super.getClass()

C# 继承 : How to invoke the base class constructor when i call the derived class constructor

c++ - 我应该把空基类放在哪里?

c++ - 欧拉网站第8部作品

c++ - (false - NOT (0)) 等于 1?

Python继承——如何继承类函数?

c++ - 多重继承情况下的销毁顺序

生成自定义类集合的 Pythonic 多重继承

c++ - 霍夫变换后如何只过滤最长的线

c++ - 在集合中找到一对 C++