Benim Qt uygulamasında, aşağıdaki gibi bir temel sınıf var. QObject kullanıyorum çünkü tüm türetilmiş sınıflarda Sinyal Yuvası mekanizmasını kullanmak istiyorum.Qt/C++ 'da Çoklu mirasın doğru yolu nedir?
class IRzPlugin : public QObject {
public:
virtual void registerMenu(QWidget*);
virtual void execute();
}
Daha sonra takip ettiğim başka bir dersim var. QWidget'ten genişletmem gerekiyor çünkü tüm türetilmiş sınıflarda olay işleme yöntemlerini kullanmam gerekiyor (mouseMoveEvent(), keyPressEvent() .. vb);
class IRzLayeringPlugin : public IRzPlugin , public QWidget{
}
Fakat derleyici verir bu hatalar:
C:\svn\osaka3d\tags\iter08\prototype\osaka3d\rinzo\plugin\moc_IRzLayeringPlugin.cxx: In member function `virtual const QMetaObject* IRzLayeringPlugin::metaObject() const':
C:\svn\osaka3d\tags\iter08\prototype\osaka3d\rinzo\plugin\moc_IRzLayeringPlugin.cxx:51: error: `QObject' is an ambiguous base of `IRzLayeringPlugin'
C:\svn\osaka3d\tags\iter08\prototype\osaka3d\rinzo\plugin\moc_IRzLayeringPlugin.cxx:51: error: `QObject' is an ambiguous base of `IRzLayeringPlugin'
make[2]: *** [CMakeFiles/Rinzo.dir/plugin/moc_IRzLayeringPlugin.cxx.obj] Error 1
teşekkürler, sonunda ne yaptım / –