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 のサブクラスまたはインスタンスの数に関係なく、プログラム全体でキューのインスタンスは 1 つだけです。

メモリ レイアウトに関する限り、静的メンバーは、任意のクラスの外部で宣言されたグローバル変数と同じです (名前マングリングを除いて)。

于 2013-05-06T09:45:19.063 に答える