函数模版和主函数分别在.h .cpp中(要包含.cpp)

Posted 菜鸟根据地

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数模版和主函数分别在.h .cpp中(要包含.cpp)相关的知识,希望对你有一定的参考价值。

Complex.h


#pragma once
#include<iostream>
using namespace std;//这句还必须加,要不然致错,不懂为啥呢

template <typename T>
class Complex
{
public:
	Complex( T a);
	~Complex();
	Complex operator + (Complex & c1);
public:
	friend ostream & operator  << <T> (ostream &out,  Complex & c2);
private:
	T a;
};

  

Complex.cpp

#include "Complex.h"
template <typename T>
Complex<T>::Complex(T a )
{
	this->a = a;
}

template <typename T>
Complex<T>::~Complex()
{
}

template <typename T>
Complex<T> Complex<T> ::operator + (Complex<T> & c1)
{
	this->a = this->a + c1.a;
	return *this;
}

template <typename T>
ostream & operator << (ostream &out, Complex <T> & c2)
{
	out << c2.a;
	return out;
}

  

test.cpp


#include<iostream>
#include"Complex.cpp"//这里至关重要!!!
using namespace std;

int main()
{
	Complex <int> a(5);

	cout << a;
	system("pause");
	return 0;
}

  要包含.cpp这点异于常类 易错误

以上是关于函数模版和主函数分别在.h .cpp中(要包含.cpp)的主要内容,如果未能解决你的问题,请参考以下文章

能不能在.cpp文件中调用.cu里的c函数,该怎么处理

构造函数和包含标题的问题

iOS- .h .m .mm .cpp文件

将类的定义放在头文件中,把成员函数的实现代码放在一个cpp文件中

C++创建一个结构体应该放在.cpp文件中吗?然后调用的时候只要包含这个.cpp文件?

关于将函数写入头文件问题