您的位置:首页 > 其它

template

2015-12-19 22:07 381 查看
#include <iostream>
using namespace std;

template <typename T1, typename T2>
class complex
{
public:
T1 real;
T2 imag;
complex();
complex(T1 r, T2 i);
complex(const complex<T1, T2> &R);
complex &operator=(const complex<T1, T2> &R);
};

template <typename T1, typename T2> complex<T1, T2>::complex():real(0),imag(0)
{
}

template <typename T1, typename T2> complex<T1, T2>::complex(T1 r, T2 i)
{
real = r;
imag = i;
}

template <typename T1, typename T2> complex<T1, T2>::complex(const complex<T1, T2> &R)
{
real = R.real;
imag = R.imag;
}

template <typename T1, typename T2> complex<T1, T2> &complex<T1, T2>::operator=(const complex<T1, T2> &R)
{
real = R.real;
imag = R.imag;
return *this;
}

template <typename T1, typename T2> ostream &operator<<(ostream &out, const complex<T1, T2> &R)
{
out<<"real:"<<R.real<<"   imag:"<<R.imag;
return out;
}

template <typename T1, typename T2> complex<T1, T2> operator+(const complex<T1, T2> &L, const complex<T1, T2> &R)
{
complex<T1, T2> sum;
sum.real = L.real + R.real;
sum.imag = L.imag + R.imag;
return sum;
}

int main()
{
complex<int, int> a(2,3), b(3, 2);
complex<int, int> c = a + b;
cout<<c<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: