关于类模板的解释在“c++中类模板中的函数第二种情形”中已经做了说明,本节内容具体看代码即可。
.h文件:
#pragma once
#include <iostream>
using namespace std;
template <typename T>
class Complex; //类的前置声明
template <typename T>
Complex<T> MySub(Complex<T>& c1, Complex<T>& c2);
template <typename T>
class Complex
{
friend Complex<T> MySub<T>(Complex<T>& c1, Complex<T>& c2);
friend ostream& operator<< <T> (ostream& out, Complex& c3);
public:
Complex(T a, T b);
void printCom();
Complex operator+ (Complex& c2);
private:
T a;
T b;
};
.cpp文件
#include <iostream>
#include"Complex.h"
using namespace std;
//构造函数的实现 写在了类的外部
template <typename T>
Complex<T>::Complex(T a, T b)
{
this->a = a;
this->b = b;
}
template <typename T>
void Complex<T>: