200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 类模板分文件编写:错误 LNK 无法解析的外部符号 “public: __cdecl Person

类模板分文件编写:错误 LNK 无法解析的外部符号 “public: __cdecl Person

时间:2021-03-12 10:09:11

相关推荐

类模板分文件编写:错误 LNK 无法解析的外部符号 “public: __cdecl Person

错误:

代码:

Person.h

#pragma once#include <iostream>using namespace std;template<class T1,class T2>class Person{private:T1 mName;T2 mAge;public:Person(T1 name, T2 age);void Show();};

Person.cpp

#include "Person.h"template<class T1,class T2>Person<T1, T2>::Person(T1 name, T2 age) {this->mName = name;this->mAge = age;}template<class T1,class T2>void Person<T1, T2>::Show() {cout << "Nmae=" << this->mName << ",Age=" << this->mAge << endl;}

main.cpp

#include "Person.h"void main(void) {Person<string,int> p("aaa", 23);p.Show();}

解决方案:

只需要改变main.cpp头文件。

#include "Person.h"改为#include "Person.cpp"

修改后的main.cpp

#include "Person.cpp"void main(void) {Person<string,int> p("aaa", 23);p.Show();}

结果:

原因:与以下有关。

1.编译器问题;

2.函数模板调用;

因为程序没有生成具体的模板函数Person<string,int>,因此出现链接问题。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。