C 模板類的分檔案編寫問題及解決

2021-09-08 23:37:48 字數 1373 閱讀 8288

#pragma once

#include #include using namespace std;

templateclass person

;

#include "pch.h"

#include "person.h"

templateperson::person(t1 name ,t2 age)

templatevoid person::showperson()

#include #include #include "person.h"

#include "person.cpp"

//注意標頭檔案:string 和 string.h 的區別;

using namespace std;

//類模板的分檔案編寫及問題及解決

//建議模板不要做分檔案編寫,寫到乙個類中即可;

//將實現也寫到.h中,並把字尾名.h改為.hpp;

/*void test01()

*///無法解析的外部命令。

void test02()

//#include "person.cpp"可以解決;

//只#include"person.h"時,單元編譯可以,模板t無法分配記憶體,無法生成成員函式,沒有任何的實現;

int main()

解決方法2:實現和生命寫到一起:

#pragma once

#include #include using namespace std;

templateclass person

;templateperson::person(t1 name, t2 age)

templatevoid person::showperson()

#include #include #include "person.hpp"

//注意標頭檔案:string 和 string.h 的區別;

using namespace std;

//類模板的分檔案編寫及問題及解決

//建議模板不要做分檔案編寫,寫到乙個類中即可;

//將實現也寫到.h中,並把字尾名.h改為.hpp;

/*void test01()

*///無法解析的外部命令。

void test02()

//#include "person.cpp"可以解決;

//只#include"person.h"時,單元編譯可以,模板t無法分配記憶體,無法生成成員函式,沒有任何的實現;

int main()

c 類模板之分檔案編寫問題及解決

我們在實際專案中一般習慣標頭檔案 h 和原始檔 cpp 分開寫,這樣做的好處良多,但是如果遇到了類模板,這樣可能會有一點兒問題。我們通過乙個例子來看 person.h 1 pragma once 2 include 3 include4 using namespace std 56 template...

類模板分檔案編寫

示例 person.hpp中 pragma once include using namespace std include templateclass person 建構函式 類外實現 templateperson person t1 name,t2 age 成員函式 類外實現 templatev...

類模板分檔案編寫遇到的問題和解決方法

1.問題引入 當使用類模板的成員函式的具體實現與宣告分別寫在不同的檔案時,出現錯誤,使用vs作為ide。錯誤 main.cpp include person.h void test01 intmain person.h pragma once include include using namesp...