QtからOnote
拡張されたクラスがあります。QGraphicsItem
そのメロディーに属するアイテムCmelody
のリストと、それらすべての音符が共有するいくつかの値を保持する別のクラスを作成したいと考えています。Onote
iTempo
どちらもお互いを識別する必要があり、両方のクラスを両方のクラスに含めることはできないため、いくつかを物理的に同じOnotes
ように継承したいですか? 仮想継承が必要なように見えましたが、それを使用すると、すべてに独自の. Cmelody
Onote
Cmelody
たとえば、 と を継承するシステムを作成することは可能ですCmelody c1
か。とを継承し、? すべての子の値を変更すると、親から読み取るときに同じ値が取得されます。Onote o1
Onote o2
Cmelody c2
Onote o3
Onote o4
Onote o5
Cmelody
Onote
Cmelody
例証するために、クラス構造は大まかに次のようになります。
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..
};