#ifndef _mainwidow_h
#define _mainwidow_h
3 #include <QMainWindow>
4 class QAction;
5 class QMenu;
6 class QToolBar;
7 class QTextEdit;
8 class MainWindow : public QMainWindow
9 {
10 Q_OBJECT
11 public:
12 MainWindow();
13 void createMenus();
14 void createActions();
endif
第4 至第7 句对程序下文中可能用到的类进行前置声明(forward declaration)。它
们会告诉编译器,我们用到的这些类已经存在了,并且不需要知道这些类的完整定义。我们
为什么要这样做,而不是将它们的头文件包含进来呢?这主要是由于在程序下文中,我们只
是简单的定义了指向这些类的对象的指针,而并没有涉及到该类的其他方面。
这样做的好处,一是避免了头文件被其他文件多次包含,尤其是在头文件中包含头文
件时,容易造成重复包含和产生包含顺序问题,并且增大了文件的体积;二是提高了编译速
度,因为编译器只需知道该类已经被定义了,而无需了解定义的细节。