第7周项目5友元模板类

来源:互联网 发布:qemu运行arm linux 编辑:程序博客网 时间:2024/05/22 03:51
//看了半小时都找不出原因,逻辑语法都没错的,百度也找不到,有空再看看:INTERNAL COMPILER ERROR#include <iostream>   using namespace std;template<class T>   class Complex   {public:Complex( ){real=0;imag=0;}      Complex(T r,T i){real=r;imag=i;}    Complex complex_add(Complex &c2);template<class T> friend Complex<T> add_complex( Complex<T> &c1, Complex<T> &c2);   void display( );   private:T real;    T imag;};template<class T>  Complex<T> Complex<T>::complex_add(Complex &c2)   {Complex<T> c;    c.real=real+c2.real;c.imag=imag+c2.imag;return c;}  template<class T>  Complex<T> add_complex( Complex<T> &c1, Complex<T> &c2)  {      Complex<T> c;      c.real=c1.real+c2.real;      c.imag=c1.imag+c2.imag;      return c;  } template<class T>void Complex<T>::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( );   Complex<int>  c7;  c7=add_complex(c1,c2);  cout<<"c1+c2=";   c7.display( );  system("pause");  return 0;  }

原创粉丝点击