Qt標頭檔案引入兩個namespace Ui的解釋

2021-08-25 06:10:55 字數 1213 閱讀 4069

這個問題很好,乙個最簡單的qt專案中有4個檔案,我們來看看mainwindow.h和cpp的**:

#include //這句話的意思,先宣告乙個在ui命名空間的名為mainwindow的未定義的的類,現在只是乙個宣告而已

namespace ui

class mainwindow : public qmainwindow

;#endif // mainwindow_h

2.mainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include #include #include #include #include mainwindow::mainwindow(qwidget *parent) :

qmainwindow(parent),

ui(new ui::mainwindow)//此處也用了乙個ui

mainwindow::~mainwindow()

解釋:.cpp檔案同時引入了兩個標頭檔案

#include "mainwindow.h"

#include "ui_mainwindow.h"

而且它們裡面都有命名空間ui,類名也相同,但是這兩者有重大區別,乙個是宣告,乙個是定義!!!!!

1.mainwindow.cpp中引入"mainwindow.h中"中mainwindow是宣告,如下:

namespace ui

2.mainwindow.cpp中引入的"ui_mainwindow.h"中mainwindow是定義,如下:

namespace ui ;

} // namespace ui

兩個命名空間雖然同名,而且類名也相同,但是乙個是宣告,乙個是定義,可以有無數個宣告,但是只能有乙個定義,所以編譯不會報錯!!

兩個類標頭檔案互相包含

c 中兩個類的標頭檔案互相包含問題 csdn部落格 我們知道,當乙個類 設類a 中包含另乙個類 設類b 的物件時,必須在該檔案中包含另乙個類的標頭檔案,如果兩個類都互用到了對方的物件,理論上就要互相包含標頭檔案,但是這樣是不可取的。貼出 如下 這樣是無法通過編譯的,其原因是它們的標頭檔案互相包含了,...

兩個類的標頭檔案互相包含

我做任務的時候遇到了兩個類都互相包含對方的物件的問題,本來是有錯誤的,但經過我一番改動,兩個標頭檔案互相包含同時,每個標頭檔案都含有令乙個類的前置宣告。雖然最後執行正確,但是方法不太正確,我寫的程式打包放在了碼雲我的私密倉庫裡,在網上看到了比較正確的方法記錄下來。我們知道,當乙個類 設類a 中包含另...

g 兩個關於標頭檔案編譯問題

好吧,不得不說professor demko的c for fe 的project真是可以加速學習c 的好方法。當年本科時候在李文新老師的課上學c 最後也只是完成了poj上 魔獸世界 的大作業,而且只考慮了下派生類 友類和虛構函式。其他東西,呵呵,早都忘了嚕。好了,廢話不多說,開始討論問題。在 ter...