#include <QtWidgets/QMainWindow>
#include "ui_QtWidgetsApplication4.h"
class MyLineEdit;
class QtWidgetsApplication4 : public QMainWindow
{
Q_OBJECT
public:
QtWidgetsApplication4(QWidget *parent = nullptr);
~QtWidgetsApplication4();
private:
MyLineEdit* theLine;
};
#include "QtWidgetsApplication4.h"
#include "MyLineEdit.h"
QtWidgetsApplication4::QtWidgetsApplication4(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
theLine=new MyLineEdit;
}
首先我们先示范下满足此编码规范的例子,如上图,在头文件中因为只会用到MyLineEdit类的指针,所以不要包含该类头文件,只需要前置声明。 在源文件中因为会使用到MyLineEdit的构造函数,所以必须包含头文件。
讲完这个问题是什么之后,我们就该到讲这个问题为什么的时候了。
首先在比较大型的项目时,多个头文件互相包含,会导致到编译时间过长。
其次在一个文件中使用多个包含同一头文件的头文件时,会导致编译器提示重定义。