QtからOnote拡張されたクラスがあります。QGraphicsItem
そのメロディーに属するアイテムCmelodyのリストと、それらすべての音符が共有するいくつかの値を保持する別のクラスを作成したいと考えています。OnoteiTempo
どちらもお互いを識別する必要があり、両方のクラスを両方のクラスに含めることはできないため、いくつかを物理的に同じOnotesように継承したいですか? 仮想継承が必要なように見えましたが、それを使用すると、すべてに独自の. CmelodyOnoteCmelody
たとえば、 と を継承するシステムを作成することは可能ですCmelody c1か。とを継承し、? すべての子の値を変更すると、親から読み取るときに同じ値が取得されます。Onote o1Onote o2Cmelody c2Onote o3Onote o4Onote o5CmelodyOnoteCmelody
例証するために、クラス構造は大まかに次のようになります。
class Cmelody
{
public:
Cmelody(void);
~Cmelody(void);
std::vector<Onote*> notes;
//a handful of variables and a function..
};
class Onote : public QGraphicsitem
{
public:
Onote(QObject* parent);
~Onote(void);
//various variables and some functions listed..
};