类模板h和cpp分离编写(补充)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23859701/article/details/81674943

demo.cpp文件

#define _CRT_SECURE_NO_WARNINGS
#include "Person.hpp"//如果是Person.h就链接失败 类模板一般不分开写
int main(void)
{
    Person<int> xiaoming(6);
    xiaoming.show();
    system("pause");
    return 0;

}
//问题产生
//每个cpp都是单独编译  发现函数调用,再当前位置找不到,函数位置生成符号
//类模板需要二次编译,第二次才生成具体函数
//综上 链接的时候找不到 具体函数

//解决方案
//1.将demo的头文件变成.cpp 可以通过
//2.将Person.cpp 改成.hpp

Person.cpp文件

#include "Person.h"
 template<class T>
 Person<T>::Person(T age){

     this->age = age;
 }
 template<class T>
 void Person<T>::show(){

     cout << "age:" << this->age << endl;
 }

Person.h文件

#pragma once
#include<iostream>
using namespace std;
template<class T>
class Person{
public:
     Person(T age);
     void show();
 public:
     T age;

 };


这里写图片描述

展开阅读全文

没有更多推荐了,返回首页