c++多重继承的顺序应该如何写?



 class MainWindow : public QMainWindow,public Ui::MainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
};

这里继承QMainWindow 和 Ui::MainWindow,当然如果顺序调换一下编译就不通过了。谁能解释一下这个问题。另外QT里面MainWindow是不是一定要同时继承QMainWindow 和 Ui::MainWindow? 直接继承Ui::MainWindow不可以吗?

oop 继承 C++ 面向对象设计模式

″移山倒海、 9 years, 10 months ago

这是Qt用 ui 文件生成的 ui_*.h 文件,里面的 Ui::*Class 保存了用 Qt Designer 生成的 UI 文件里面的所有控件
所以只继承 Ui::MainWindow 是不行的,从 Qt 来说, MainWindow 还是 QMainWindow 的派生类,继承 Ui::MainWindow 只是为了能使用 ui 文件中的的控件
一般是只继承 QMainWindow ,然后把 Ui::*Class 做成员变量

八十八粒米 answered 9 years, 10 months ago

Your Answer