我有一个从 QtOnote
扩展的类。QGraphicsItem
我想创建另一个类,其中包含属于该旋律Cmelody
的项目列表以及所有这些音符共享的一些值,例如.Onote
iTempo
我希望Onotes
从物理上继承几个相同的 Cmelody
,因为它们都需要相互识别,并且我不能将两个类都包含在两个类中?似乎我需要虚拟继承,但有了它,每个Onote
都有它自己的Cmelody
.
是否有可能创建一个系统,例如,Cmelody c1
将继承Onote o1
和Onote o2
; 并且Cmelody c2
会继承Onote o3
,Onote o4
和Onote o5
? 当我更改 a 中的一个值时,它的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..
};