Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285064
  • 博文数量: 82
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 874
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-21 09:58
个人简介

traveling in cumputer science!!

文章分类

全部博文(82)

文章存档

2016年(13)

2015年(69)

我的朋友

分类: C/C++

2015-06-15 12:41:37

原文:

#ifndef WINDOW_H
#define WINDOW_H

#include
#include

QT_BEGIN_NAMESPACE
class QAction;
class QCheckBox;
class QComboBox;
class QGroupBox;
class QLabel;
class QLineEdit;
class QMenu;
class QPushButton;
class QSpinBox;
class QTextEdit;
QT_END_NAMESPACE

//! [0]
class Window : public QDialog
{
Q_OBJECT

public:
Window();
……



问题:
1、QT_BEGIN_NAMESPACE、QT_END_NAMESPACE作用是什么
2、这样引入类有什么好处
3、为什么这两个类要通过include引入
#include
#include

1、It is possible to compile whole Qt inside a user-defined namespace.
See configure options for more details. These macros expand as:

Qt Code:
# define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
# define QT_END_NAMESPACE }
参考资料:


2、3
在头文件中尽量引入较少的其它头文件,可以加快编译速度;

要include QSystemTrayIcon是因为在
void iconActivated(QSystemTrayIcon::ActivationReason reason);
这个函数申明的时候需要QSystemTrayIcon类下的变量,其他的用
class QAction;
class QCheckBox;
...
是因为在头文件里面只有这些类的指针申明,并没有真正实例化,在这个头文件对应的cpp文件里面应该会
#include
#include
...
在cpp文件里面才会正真实例化这些类。
其 实直接在头文件里面#include #include 也是可以的,像它这样做,好像是可以降低各个文件编译时的关联度,不会在改动了一下部分类的时候,引发其他大量文件的 重新编译,在做小工程的时候没什么区别,但是做大了,编译一次需要好几个小时的时候,这样做的优势就显现出来了
阅读(1513) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~