0

QListを編集するためのいくつかの機能を持つ別のクラスのインスタンスへのポインターを所有するクラスに格納されている単一のQListがあります。私がやりたいことは、C++ の複数のクラスから編集可能な単一の QList を持つことです。リストから要素を削除するときに、classA の myvariable 変数からも要素を削除したいと考えています。コードは以下です

class classA {
    ...

private:
    ClassB *myclass;
    QList<mytype> myvariable;
}

class classB {
    classB::classB(QList<mytype> &variable) {
        this->myvariable = variable;
    }

    ...

private:
    QList<mytype> myvariable;
}
4

2 に答える 2

2

あなたはほんの数回微調整するだけで非常に近いです。次のように、参照を作成し、 classBmyvariableのコンストラクターで初期化します。

class classB 
{
  classB(QList<mytype> &variable) 
   : myvariable(variable)
  {
  }

private:
   QList<mytype>& myvariable;
}
于 2012-07-01T22:06:35.350 に答える
0

静的qlistを保持するクラスcを導入できます。次に、それをクラスaとbの共通のサブクラスにします。

編集:

class classC {
protected:
    static QList<mytype> mystatic;
}    

class classA : public classC {
private:
}

class classB : public classC {
    classB::classB(QList<mytype> &variable) {
        mystatic = variable;
    }
}
于 2012-07-01T20:19:55.740 に答える