1. 程式人生 > >.hpp檔案與模板

.hpp檔案與模板

開門見山就一句話,.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;
}