`
dengbaoleng
  • 浏览: 1131595 次
文章分类
社区版块
存档分类
最新评论

[QT] Qt头文件中的QT_BEGIN_NAMESPACE(QT头文件中 class 类名做什么用)

 
阅读更多

在写 头文件的时间 经常会

有一些 class QFile 等这类 看似 是声明的东西..例如下面

#ifndef WINDOW_H
#define WINDOW_H

QT_BEGIN_NAMESPACE
class QTcpServer;
class QTcpSocket;
class QProgressBar;
class QLabel;
class QDialogButtonBox;
class QFile;
QT_END_NAMESPACE
//code end


class QAction;
class QCheckBox;
...

如果没有 声明 将会 出现类似下面的错误

ISO C++ forbids declaration of 'QFile' with no type

那么 这个是做什么用的呢????


是因为在头文件里面只有这些类的指针申明,并没有真正实例化,在这个头文件对应的cpp文件里面应该会
#include <
QDialogButtonBox >
#include <
QFile >
...

在cpp文件里面才会正真实例化这些类。
其 实直接在头文件里面#include <
QDialogButtonBox> #include< QFile>也是可以的,像它这样做,好像是可以降低各个文件编译时的关联度,不会在改动了一下部分类的时候,引 发其他大量文件的重新编译,在做小工程的时候没什么区别,但是做大了,编译一次需要好几个小时的时候,这样做的优势就显现出来了

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics