记录一个C++模板类的错误

最近在编写一个模板类的时候遇到了一个意料之外的错误,就是下面这个
在这里插入图片描述
刚开始还以为是代码的问题,然而在测试的过程中排除了这个可能。在查资料的过程中偶然发现C++模板类声明和实现只能在同一个文件中,若是声明放在.h下面,实现放在.cpp下面便会报这个错误。谨记!
代码如下:

//TemplateClass.h
#ifndef TEMPLATECLASS_H
#define TEMPLATECLASS_H

template 
class TemplateClass
{
public:
	TemplateClass(T1 n1, T2 n2);
	~TemplateClass();
	void printNum();

private:
	T1 num1;
	T2 num2;
};

#endif
//TemplateClass.cpp
#include 
#include "TemplateClass.h"
using namespace std;

template 
TemplateClass::TemplateClass(T1 n1, T2 n2)
{
	this->num1 = n1;
	this->num2 = n2;
}

template 
TemplateClass::~TemplateClass()
{	
}

template 
void TemplateClass::printNum()
{
	cout << "num1 = " << num1 << " num2 = " << num2 << endl;
}
//main.cpp
#include 
#include "TemplateClass.h"
using namespace std;

int main()
{
	TemplateClass *tc1 = new TemplateClass(100, 2.3);
	tc1->printNum();

	return 0;
}

以上

你可能感兴趣的:(C++)