Qt 引用頭文件 QT_BEGIN_NAMESPACE QT_END_NAMESPACE


Qt里面引入頭文件的兩種方式:

1、

#include <QMdiArea>
#include<QSplashScreen>

 

2、

QT_BEGIN_NAMESPACE
class QMdiArea;
class QSplashScreen
QT_END_NAMESPACE

關於QT_BEGIN_NAMESPACE 和QT_END_NAMESPACE 比較好的解釋:

比較好的解釋:

    QT_BEGIN_NAMESPACE其實就是個宏,以前Qt4是沒有Qt命名空間的,后來才加上的,編譯Qt源碼時會有選項,是否將這些類放到專用的Qt命名空間內,默認是沒有的。這就出來問題了,為了統一,如果你的代碼在默認沒有Qt命名空間的SDK中編譯,那你就不用在前置聲明下面這些類的時候加上命名空間,但如果你在有Qt命名空間的SDK中編譯,那就得加上命名空間了,為了屏蔽這個差異,使得你的源碼能在這兩種情況下都進行編譯,Qt提供了QT_BEGIN_NAMESPACE宏,這樣開發者就省得自己來用程序或宏進行處理了。
class QDialogButtonBox;
class QPushButton;
class QSqlTableModel;
至於說加快編譯速度什么的,那是上述三個類的前置聲明的作用,這是與Qt無關的(也即與QT_BEGIN_NAMESPACE宏無關)。如果你在頭文件中只用到一些類的指針(而非實現),那么就可以不包含這些類的頭文件,而只使用上面形式的類型前置聲明,而在具體實現時才包含入上面這些類型的頭文件。如此,頭文件里所包含的頭文件減少了,那么使用到這個頭文件的程序就能包含更少的內容,而不是每次都包含很多頭文件,解析起來都耗時。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM