簡體   English   中英

qobject基礎的多重繼承

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM