在我的Qt應用程序中,我有一個基類如下。我使用QObject是因爲我想在所有派生類中使用Signal-Slot機制。Qt/C++中多重繼承的正確方法是什麼?
class IRzPlugin : public QObject {
public:
virtual void registerMenu(QWidget*);
virtual void execute();
}
然後我有另一個類如下。我需要從QWidget進行擴展,因爲我需要在所有派生類中實現事件處理方法(mouseMoveEvent(),keyPressEvent().. etc);
class IRzLayeringPlugin : public IRzPlugin , public QWidget{
}
但是編譯器給出了這些錯誤:
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
謝謝,那是我最後做的/ – 2010-07-09 01:19:10