第七周实验报告(三)

来源:互联网 发布:linux vim 颜色配置 编辑:程序博客网 时间:2024/06/05 07:22

通过类模板的技术手段,设计complex。(使一个函数能给他使用更多的数据类型)

#include <iostream>using namespace std;template <class numtype>class Complex   {public:Complex( ){real=0;imag=0;}     Complex(numtype r,numtype i){real=r;imag=i;} Complex complex_add(Complex &c2);Complex complex_cut(Complex &c2);Complex complex_cheng(Complex &c2);Complex complex_chu(Complex &c2);Complex display( ); private:numtype real; numtype imag; };template <class numtype>Complex<numtype> Complex<numtype>::complex_add(Complex<numtype> &c2)   {Complex c;c.real=real+c2.real;c.imag=imag+c2.imag;return c;}template <class numtype>Complex<numtype> Complex<numtype>::complex_cut(Complex<numtype> &c2){Complex c;c.real=real-c2.real;c.imag=imag-c2.imag;return c;}template <class numtype>Complex<numtype> Complex<numtype>::complex_cheng(Complex<numtype> &c2){Complex<numtype> c;      c.real = real * c2.real - imag * c2.imag;       c.imag = imag * c2.real + real * c2.imag;      return c;  }template <class numtype>Complex<numtype> Complex<numtype>::complex_chu(Complex<numtype> &c2){ Complex<numtype> c;      c.real = (real * c2.real + imag * c2.imag)/(c2.real * c2.real + c2.imag * c2.imag);      c.imag = (real * c2.imag - imag * c2.real)/(c2.real * c2.real + c2.imag * c2.imag);      return c;  }template <class numtype>  Complex<numtype> Complex<numtype>::display( )   {cout<<"("<<real<<","<<imag<<"i)"<<endl;}int main( ){    Complex<int> c1(3,4),c2(5,-10),c3;  c3=c1.complex_add(c2);  cout<<"c1+c2="; c3.display( );  Complex<double> c4(3.1,4.4),c5(5.34,-10.21),c6; c6=c4.complex_add(c5);  cout<<"c4+c5="; c6.display( );c3=c1.complex_cut(c2);cout<<"c1-c2=";c3.display();c6=c4.complex_cut(c5);cout<<"c4-c5=";c6.display();c3=c1.complex_cheng(c2);cout<<"c1*c2=";c3.display();c6=c4.complex_cheng(c5);cout<<"c4*c5";c6.display();c3=c1.complex_chu(c2);cout<<"c1/c2=";c3.display();c6=c4.complex_chu(c5);cout<<"c4/c5=";c6.display();system("pause");return 0;}


 

 

 

学会使用类模板使程序更加简洁与方便。

template <class numtype>
class 类名

{

     类名   函数名(类名 形参)

}

template <class numtype>
类名<numtype> 类名<numtype>::函数名(类名<numtype>形参)

 

这是类模板的基本结构。

 

 

原创粉丝点击