#include<iostream.h>
template<class T>
class Complex
{
private:
T real;
T image;
public:
Complex(T x=0,T y=0);
~Complex()
{}
Complex Add(const Complex x) const;
Complex Add(const T x) const;
Complex Subtract(const Complex x) const;
Complex Subtract(const T x) const;
Complex Multiply(const Complex x) const;
Complex Multiply(const T x) const;
void show(void) const;
};
template<class T>
Complex<T>::Complex(T x, T y)
{
real=x;
image=y;
}
template<class T>
Complex<T> Complex<T>::Add(const Complex<T> x) const
{
return Complex<T>(real+x.real,image+x.image);
}
template<class T>
Complex<T> Complex<T>::Add(const T x) const
{
return Complex<T>(real+x,image);
}
template<class T>
Complex<T> Complex<T>::Subtract(const Complex<T> x) const
{
return Complex<T>(real-x.real,image-x.image);
}
template<class T>
Complex<T> Complex<T>::Subtract(const T x) const
{
return Complex<T>(real-x,image);
}
template<class T>
Complex<T> Complex<T>::Multiply(const Complex<T> x) const
{
return Complex<T>(real*x.real-image*x.image,real*x.image+x.real*image);
}
template<class T>
Complex<T> Complex<T>::Multiply(const T x) const
{
return Complex<T>(real*x,image);
}
template<class T>
void Complex<T>::show(void) const
{
cout<<" real is "<< real ;
cout<<" image is "<< image <<endl;
}
#include"fushulei.h"
void main(void)
{
Complex<float> x(1.1f,1.1f),y(2.2f,2.2f),z,a,b;
z=x.Add(y);
cout<<"z is:";
z.show();
a=x.Subtract(y);
cout<<"a is:";
a.show();
b=x.Multiply(y);
cout<<"b is:";
b.show();
Complex<double> u(1.111111,1.111111),v(2.222222,2.222222),w,c,d;
w=u.Add(v);
cout<<"w is:";
w.show();
c=u.Subtract(v);
cout<<"c is:";
c.show();
d=u.Multiply(v);
cout<<"d is:";
d.show();
}