類模板 h和 cpp分離實現的問題

2021-10-04 15:12:57 字數 666 閱讀 3531

pch.h

#ifndef pch_h

#define pch_h

// todo: 新增要在此處預編譯的標頭

#include

using namespace std;

template

class persion ;

#endif //pch_h

主函式cpp

#include 「pch.h」

#include

int main()

模板函式.cpp

#include"pch.h"

template

persion::persion(t age_)

template

void persion::show()

1)c++編譯為對這倆cpp 檔案進行單獨編譯

2)在遇到函式呼叫時尋找函式位置,沒有找到,這時候交給聯結器處理

3)然而模板函式.cpp檔案只進行了一次編譯,沒有找到其呼叫位置,所以這次編譯函式模板沒有生成對應的模板函式

4)所以在連線時無法成功

1)將模板函式.cpp檔案定義成hpp檔案(hpp檔案就代表是函式模板的定義)

2)將該檔案宣告在主函式檔案裡

類模板的 h和 cpp檔案分離

templateclass abc include b.h templatevoid abc setvv t b templatet abc getvv include b.cpp include using namespace std int main abcab ab.setvv 10 cout...

C 中模板類的宣告和實現分離問題

有兩種方法 第1種 使用 tpp 檔案實現類模板的介面與實現的檔案分離 在.h檔案中放介面,在.tpp檔案中放實現,但這種方法得在.h檔案中,類的定義下面通過 include包含 tpp 檔案,如下 檔案 放類模板的介面 pragma once templateclass templateclass...

類模板的分離編譯問題

類模板的分離編譯,即模板類的定義和其模板成員函式 介面 的定義不在同一檔案中。如模板類的定義在.h標頭檔案中,同時在.h標頭檔案中宣告介面,而在模板類之外的.cpp檔案中定義介面。此時在main函式中,如果只引用.h標頭檔案,編譯會報錯。原因 大多數編譯器,不支援類模板的分離編譯!1 實現分離編譯 ...