hpp檔案與模板

2021-09-02 15:34:43 字數 688 閱讀 5167

開門見山就一句話,.hpp檔案是c++中預設模板實現檔案。大家都知道.cpp是c++的實現檔案,那麼要使用.hpp檔案呢?這就要從模板的編譯和鏈結說起。模板的編譯過程會分成兩部分。一般大家會將對應的模板的定義和實現寫在同乙個檔案中,而有時為了便利,我們也會將模板的實現檔案和定義檔案分開編寫,這時在使用模板的時候,我們就不能像往常一樣,包含模板的定義檔案(.h),這樣會報鏈結失敗的。這時的正確的做法是包含模板的實現檔案(.cpp)而不是定義檔案(.h)。

//模板定義檔案

#pragma once

template t add(t num1, t num2);

//模板實現檔案

#include "test.h"

template t add(t num1, t num2)

#include //#include "templatetest.h"  //如果.h檔案中的模板沒有在其中實現,包含.h會導致編譯失敗

#include "templates.cpp" //正確,但是.cpp的風格不好,所以一般在模板中會將

//對應的實現檔案定義為.hpp檔案,而不是.cpp檔案使用.hpp檔案

using namespace std;

int main()

hpp檔案與h檔案

提起hpp檔案,或許很多菜鳥會比較陌生,大家只知道.h檔案,但是沒聽過hpp。實際上,hpp檔案是將cpp檔案混入h標頭檔案中,在hpp檔案內,實現與定義都包含在了同乙個檔案中,所以,該類的呼叫者只需要include這個hpp檔案即可,無需再將cpp檔案加到project中進行編譯。而實現 將直接編...

HPP檔案簡介

hpp其實質就是將.cpp的實現 混入.h標頭檔案當中,定義與實現都包含在同一檔案,則該類的呼叫者只需要include該hpp檔案即可,無需再將cpp加入到project中進行編譯。hpp將實現 直接編譯到呼叫者的obj檔案中,不再生成單獨的obj,採用hpp將大幅度減少呼叫project中的cpp...

h與 hpp檔案的區別

c 中的.hpp檔案 hpp,其實質就是將.cpp的實現 混入.h標頭檔案當中,定義與實現都包含在同一檔案,則該類的呼叫者只需要include該hpp檔案即可,無需再 將cpp加入到project中進行編譯。而實現 將直接編譯到呼叫者的obj檔案中,不再生成單獨的obj,採用hpp將大幅度減少呼叫 ...