0

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

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 会有单独的实例?

4

2 回答 2

1

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

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

于 2013-05-06T09:45:19.063 回答
0

静态变量独立于类的实例。静态变量在初始化时被实例化,并在退出程序时被销毁。因此,它们的生命周期等于程序的生命周期。

于 2013-05-06T09:45:43.437 回答