7_5复数模板类

2014-11-24 03:01:55 · 作者: · 浏览: 2

[cpp]
#include
using namespace std;
template
class Complex
{public:
Complex(){real=0,imag=0;}
Complex(numtype r,numtype i){real=r;imag=i;}
Complex complex_add(Complex );//加法
Complex complex_sub(Complex );//减法
Complex complex_mul(Complex);//乘法
Complex complex_div(Complex);//除法
void display();
private:
numtype real;
numtype imag;
};
template
Complex Complex::complex_add(Complex a)
{
Complex c;
c.real=real+a.real;
c.imag=imag+a.imag;
return c;
}
template
Complex Complex::complex_sub(Complex a)
{
Complex c;
c.real=real-a.real;
c.imag=imag-a.imag;
return c;
}
template
Complex Complex::complex_mul(Complex a)
{
Complex c;
c.real=real*a.real-imag*a.imag;
c.imag=imag*a.real+real*a.imag;
return c;
}
template
Complex Complex::complex_div(Complex a)
{
Complex c;
numtype d;
d=a.real*a.real+a.imag+a.imag;
c.real=(real*a.real+imag*a.imag)/d;
c.imag=(imag*a.real-real*a.imag)/d;
return c;
}
template
void Complex::display()
{
cout< }
int main( )
{
Complex c1(3,4),c2(5,-10),c3;
c3=c1.complex_add(c2);
cout<<"c1+c2=";
c3.display( );
Complex c4(3.1,4.4),c5(5.34,-10.21),c6;
c6=c4.complex_sub(c5);
cout<<"c4-c5=";
c6.display( );
Complex a1(3,4),a2(5,-10),a3;
a3=a1.complex_mul(a2);
cout<<"a1*a2=";
a3.display( );
Complex a4(3.1,4.4),a5(5.34,-10.21),a6;
a6=a4.complex_sub(a5);
cout<<"a4/a5=";
a6.display( );
system("pause");
return 0;
}
运行结果:

#include
using namespace std;
template
class Complex
{public:
Complex(){real=0,imag=0;}
Complex(numtype r,numtype i){real=r;imag=i;}
Complex complex_add(Complex );//加法
Complex complex_sub(Complex );//减法
Complex complex_mul(Complex);//乘法
Complex complex_div(Complex);//除法
void display();
private:
numtype real;
numtype imag;
};
template
Complex Complex::complex_add(Complex a)
{
Complex c;
c.real=real+a.real;
c.imag=imag+a.imag;
return c;
}
template
Complex Complex::complex_sub(Complex a)
{
Complex c;
c.real=real-a.real;
c.imag=imag-a.imag;
return c;
}
template
Complex Complex::complex_mul(Complex a)
{
Complex c;
c.real=real*a.real-imag*a.imag;
c.imag=imag*a.real+real*a.imag;
return c;
}
template
Complex Complex::complex_div(Complex a)
{
Complex c;
numtype d;
d=a.real*a.real+a.imag+a.imag;
c.real=(real*a.real+imag*a.imag)/d;
c.imag=(imag*a.real-real*a.imag)/d;
return c;
}
template
void Complex::display()
{
cout< }
int main( )
{
Complex c1(3,4),c2(5,-10),c3;
c3=c1.complex_add(c2);
cout<<"c1+c2=";
c3.display( );
Complex c4(3.1,4.4),c5(5.34,-10.21),c6;
c6=c4.complex_sub(c5);
cout<<"c4-c5=";
c6.display( );
Complex a1(3,4),a2(5,-10),a3;
a3=a1.complex_mul(a2);
cout<<"a1*a2=";
a3.display( );
Complex a4(3.1,4.4),a5(5.34,-10.21),a6;
a6=a4.complex_sub(a5);
cout<<"a4/a5=";
a6.display( );
system("pause");
return 0;
}
运行结果:

\