.hpp檔案與模板
阿新 • • 發佈:2018-12-23
開門見山就一句話,.hpp檔案是c++中預設模板實現檔案。大家都知道.cpp是c++的實現檔案,那麼要使用.hpp檔案呢?這就要從模板的編譯和連結說起。模板的編譯過程會分成兩部分。一般大家會將對應的模板的定義和實現寫在同一個檔案中,而有時為了便利,我們也會將模板的實現檔案和定義檔案分開編寫,這時在使用模板的時候,我們就不能像往常一樣,包含模板的定義檔案(.h),這樣會報連結失敗的。這時的正確的做法是包含模板的實現檔案(.cpp)而不是定義檔案(.h)。
//模板定義檔案 #pragma once template <typename T> T Add(T num1, T num2);
/
//模板實現檔案
#include "test.h"
template <typename T>
T Add(T num1, T num2)
{
return num1 + num2;
}
/
#include <iostream> //#include "templatetest.h" //如果.h檔案中的模板沒有在其中實現,包含.h會導致編譯失敗 #include "templates.cpp" //正確,但是.cpp的風格不好,所以一般在模板中會將 //對應的實現檔案定義為.hpp檔案,而不是.cpp檔案使用.hpp檔案 using namespace std; int main() { cout << Add(5, 6) << endl; }