通过函数来实现复数相加
程序代码:
//通过函数来实现复数相加 #include <iostream> using namespace std; class Complex //定义 Complex { public: Complex( ){ real = 0; imag =0;} //定义无参构造函数,并初始化 Complex( double r, double i){ real = r; imag = i;} //构造函数重载,定义并初始化 Complex complex_add( Complex &c2); /*声明复数相加的函数,这个函数是正在定义的 Complex 类,c2 是 complex 类的引用 */ void display( ); //声明输出函数 private: double real; //实部 double imag; //虚部 }; Complex Complex::complex_add( Complex &c2) //定义复数相加的函数 { Complex c; c.real = real + c2.real; //两个复数的实部相加 c.imag = imag + c2.imag; //两个复数的虚部相加 return c;} void Complex::display( ) //定义输出函数 { cout << "(" << real << "," << imag << "i)" << endl;} int main( ) { Complex c1( 3,4),c2( 5,-10),c3; //定义三个复数对象,建立对象时自动调用有参构造函数并赋值 c3 = ( c2); //调用复数相加函数,注意这里是通过 c1 调用 complex_add 函数的 cout << "c1 =";c1.display( ); //输出 c1 的值 cout << "c2 =";c2.display( ); //输出 c2 的值 cout << "c1 + c2 =";c3.display( ); //输出 c3 的值 system("pause"); return 0; } /* 在 Complex 类中定义一个 complex_add 函数,其作用是将两个复数相加,在该函数体中定义一个 Complex 类对象 c 作为临时对象。 其后的两个赋值语句相当于 c.real = this -> real + c2.real; c.imag = this -> imag + c2.imag this 是当前对象的指针。现在,在 main 函数中是通过对象 c1 调用 complex_add 函数的,因此,以上两句相当于 c.real = c1.real + c2.real; c.imag = c1.imag + c2.imag; 注意函数的返回值是 Complex 类对象 c 的值。 */
[ 本帖最后由 hmsabc 于 2010-8-13 09:26 编辑 ]