2013-05-06 116 views
0

我有一个基类的静态队列:访问从2静态成员继承

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,会有一个队列实例,B和C都指向它,还是会有单独的实例B和C?

回答

1

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

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

0

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