代码示例:
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
不支持从另一个 QObjects 多重继承。如果您从两个类继承,只有第一个可以是 QObject,第二个不是 http://qt-project.org/doc/qt-4.8/moc.html
Virtual inheritance with QObject is not supported.
您可以在两个 QObject 之间建立关联并在它们之间转发信号。
您可以以不需要信号/槽并且不从 QObject 继承的方式抽象您的常用功能。然后继承它。然后将 MI 中的 QObject 免费类(class)与您的类(class)混合。您可以通过 Derived QObject 的信号/槽将调用转发给那些继承的方法
关于c++ - qobject 基础的多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12131357/