类模板的分文件编写的问题和解决(要引入.cpp而不是头文件)

时间:2021-08-24
本文章向大家介绍类模板的分文件编写的问题和解决(要引入.cpp而不是头文件),主要包括类模板的分文件编写的问题和解决(要引入.cpp而不是头文件)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

头文件

Person.h

#pragma once
#include <iostream>
using namespace std;

template<class T1, class T2>
class Person
{
public:
    Person(T1 name, T2 age);
    void showPerson();

    T1 m_Name;
    T2 m_Age;
};

Person.cpp

#include "Person.h"

template<class T1, class T2>
Person<T1, T2>::Person(T1 name, T2 age)
{
    this->m_Name = name;
    this->m_Age = age;
}

template<class T1, class T2>
void Person<T1, T2>::showPerson()
{
    cout << "姓名:" << this->m_Name << " 年龄: " << this->m_Age << endl;
}

main

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
using namespace std;
#include "Person.h"

void test01()
{
    Person<string, int>p("猪八戒", 30);    //error 无法解析的外部命令
    p.showPerson();                        //error
}

int main()
{
    test01();
    system("Pause");
    return 0;
}

无法运行:

解决办法:

main中引入.cpp文件

 结果:

原文地址:https://www.cnblogs.com/yifengs/p/15181343.html