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

您非常接近,只需进行一些调整。做myvariable一个引用,并在classB的构造函数中初始化它,像这样:

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 回答