我有一个带有静态队列的基类:
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是否会有单独的实例?
答案 0 :(得分:1)
队列是静态的 - 无论你创建了多少个子类或A实例,整个程序中只有一个实例。
就内存布局而言,静态成员与在任何类之外声明的全局变量没有什么不同(除了名称修改)。
答案 1 :(得分:0)
静态变量独立于类的实例。静态变量在初始化时实例化,并在退出程序时被销毁。因此,它们的寿命等于程序的生命周期。