長知識了 hpp

2021-09-25 03:13:51 字數 706 閱讀 8650

之前學習c++,就知道.h .cpp

現在盡了新的公司,並不知道.hpp是個什麼鬼,哈哈哈 

.h .hpp .cpp(顧名思義)

.hpp,本質就是將.cpp的實現**混入.h標頭檔案當中,定義與實現都包含在同一檔案,則該類的呼叫者只需要include該.hpp檔案即可,無需再將cpp加入到project中進行編譯。而實現**將直接編譯到呼叫者的obj檔案中,不再生成單獨的obj,採用hpp將大幅度減少呼叫project中的cpp檔案數與編譯次數,也不用再發布lib與dll檔案,因此非常適合用來編寫公用的開源庫。

hpp的優點不少,但是編寫中有以下幾點要注意: 

1、是header plus plus的簡寫。(.h和.hpp就如同.c和.cpp似的) 

2、與.h類似,.hpp是c++程式頭檔案格式。 

3、是vcl專用的標頭檔案,已預編譯。 

4、是一般模板類的標頭檔案。 

5、一般來說,.h裡面只有宣告,沒有實現,而.hpp裡宣告實現都有,後者可以減少.cpp的數量。 

6、.h裡面可以有using namespace std,而.hpp裡則無。 

7、不可包含全域性物件和全域性函式。

由於.hpp本質上是作為.h被呼叫者include的,所以當hpp檔案中存在全域性物件或者全域性函式,而該hpp被多個呼叫者include時,將在鏈結時導致符號重定義錯誤。要避免這種情況,需要去除全域性物件,將全域性函式封裝為類的靜態方法。

又長知識了 關於DDR記憶體的經歷

下午差點沒糗大,郭新買的電腦說執行得比較慢,讓我給看看是怎麼回事。在給他去掉了一些不必要的啟動項,把bios設定了一下後。啟動時發現記憶體自檢的是166mhz,單通道。心裡就琢磨,他不是說記憶體是ddr400的嗎?應該是雙通道吧。後來經過找資料查了一下才知道,原來雙通道是要2根記憶體才能達到的。而且...

長知識了,工業物聯網 2 ielab

長知識了,工業物聯網 2 三 工業物聯網需要連什麼?這個問題是第乙個問題的延續,如果不考慮經濟性,那麼我們可以說工業物聯網連線一切可連線之物。我們認為這是乙個從 來到 去的問題,我們通過上面對價值 意義和目的分析可知,一切從目的出發,時刻盯緊企業需要彌補的最關鍵環節,例如,如果對量化oee有需求,那...

MySQL 長知識函式

用法 find in set str,strlist 在strlist中查詢str,找到就範圍所在的位置,strlist必須是用 分割的字串 例子 select find in set 1 1,312,3 返回1 select find in set 3 1,312,3 返回3 select fin...