[英]Multiple inheritance with qobject base
代碼示例:
class TestOne : public QWidget // To fix this i need to modify class QWidget : public virtual QObject{}; which belongs to qt
{
// ...
};
class TestTwo : public virtual QObject
{
// ...
};
class Test : public TestOne, public TestTwo
{
// ...
};
有什么其他方法可以解決這個問題?
QObject不是為多重繼承而設計的。 QObject
不支持來自另一個QObject的多重繼承。 如果從兩個類繼承,則只有第一個可以是QObject,第二個不是根據http://qt-project.org/doc/qt-4.8/moc.html
不支持使用QObject進行虛擬繼承。
您可以在兩個QObject之間建立關聯並在它們之間轉發信號。
您可以以不需要信號/槽並且不從QObject繼承的方式抽象您的常用功能。 然后繼承它。 然后將MI中的QObject免費課程與您的班級混合。 您可以通過Derived QObject中的信號/槽將調用轉發給那些繼承的方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.