运算符重载
根据以下代码段完善 ?? 处内容及程序内容,以实现规定的输出。
class Complex
{
public:
Complex(double r=0, double i=0):real(r), imag(i){ }
Complex operator+( ?? ) const;//重载双目运算符'+'
Complex operator-=( ?? ); //重载双目运算符'-='
friend Complex operator-( ?? ) const;//重载双目运算符'-'
void Display() const;
private:
double real;
double imag;
};
void Complex::Display() const
{
cout << "(" << real << ", " << imag << ")" << endl;
}
int main()
{
double r, m;
cin >> r >> m;
Complex c1(r, m);
cin >> r >> m;
Complex c2(r, m);
Complex c3 = c1+c2;
c3.Display();
c3 = c1-c2;
c3.Display();
c3 -= c1;
c3.Display();
return 0;
}
输入格式:
输入有两行,分别为两个复数的实部与虚部。
输出格式:
按样例格式输出结果。
输入样例:
在这里给出一组输入。例如:
4 2
3 -5
输出样例:
在这里给出相应的输出。例如:
(7, -3)
(1, 7)
(-3, 5)
1 #include <iostream> 2 using namespace std; 3 class Complex 4 { 5 public: 6 Complex(double r=0, double i=0):real(r), imag(i){ } 7 Complex operator+( Complex &c2 ) const;//重载双目运算符'+' 8 Complex operator-=( Complex&c2 ); //重载双目运算符'-=' 9 friend Complex operator-( Complex&c1,Complex&c2 ) ;//重载双目运算符'-' 10 void Display() const; 11 private: 12 double real; 13 double imag; 14 }; 15 Complex Complex::operator +(Complex &c2)const 16 { 17 return Complex(real+c2.real,imag+c2.imag); 18 } 19 Complex Complex::operator -=(Complex&c2) 20 { 21 return Complex(real-=c2.real,imag-=c2.imag); 22 } 23 Complex operator -(Complex &c1,Complex &c2) 24 { 25 return Complex(c1.real-c2.real,c1.imag-c2.imag); 26 } 27 void Complex::Display() const 28 { 29 cout << "(" << real << ", " << imag << ")" << endl; 30 } 31 32 int main() 33 { 34 double r, m; 35 cin >> r >> m; 36 Complex c1(r, m); 37 cin >> r >> m; 38 Complex c2(r, m); 39 Complex c3 = c1+c2; 40 c3.Display(); 41 c3 = c1-c2; 42 c3.Display(); 43 c3 -= c1; 44 c3.Display(); 45 return 0; 46 }
浙公网安备 33010602011771号