sdut 4-1 復數類的運算符重載
阿新 • • 發佈:2017-06-02
turn clu data per pub opera 方便 演示 掌握
4-1 復數類的運算符重載
Time Limit: 1000MS Memory limit: 65536K
題目描寫敘述
通過本題目的練習能夠掌握成員運算符重載及友元運算符重載
要求定義一個復數類。重載加法和減法運算符以適應對復數運算的要求,重載插入運算符(<<)以方便輸出一個復數的要求。
輸入
要求在主函數中創建對象時初始化對象的值。
輸出
輸出數據共同擁有4行,分別代表a。b的值和它們求和、求差後的值
演示樣例輸入
無
演示樣例輸出
a=3.2+4.5i b=8.9+5.6i a+b=12.1+10.1i a-b=-5.7-1.1i
提示
來源
#include <iostream> using namespace std; class Complex//定義Complex類 { private: double real; double imag; public: Complex()//默覺得0 { real=0; imag=0; } Complex(double a,double b)//賦值函數 { real=a; imag=b; } Complex operator+(Complex &c);//聲明重載運算符“+” Complex operator-(Complex &c);//聲明重載運算符“-” friend ostream& operator <<(ostream &,Complex&);//聲明運算符“<<”重載為友元函數 }; Complex Complex :: operator+(Complex &c)//定義重載運算符“+”函數 { Complex d; d.real=real+c.real; d.imag=imag+c.imag; return d; } Complex Complex :: operator-(Complex &c)//定義重載運算符“-”函數 { Complex d; d.real=real-c.real; d.imag=imag-c.imag; return d; } ostream &operator <<(ostream &output,Complex&c)//定義運算符“<<”重載函數 { output<<c.real; if(c.imag>=0)output<<"+"; output<<c.imag<<"i"; return output; } int main() { Complex a(3.2,4.5),b(8.9,5.6); cout<<"a="<<a<<endl; cout<<"b="<<b<<endl; Complex c; c=a+b;//運算符+用於復數運算 cout<<"a+b="<<c<<endl; c=a-b;//運算符-用於復數運算 cout<<"a-b="<<c<<endl; return 0; }
sdut 4-1 復數類的運算符重載