《C++第八周实验报告1-1(1)》---复数类中的运算符重载用类的成员函数完成

  1. 【任务1】实现复数类中的运算符重载 
  2. 定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除。 
  3. (1)方案一:请用类的成员函数完成运算符的重载; 
  4. */  
  5. /* (程序头部注释开始) 
  6. * 程序的版权和版本声明部分 
  7. * Copyright (c) 2011, 烟台大学计算机学院学生  
  8. * All rights reserved. 
  9. * 文件名称:  Complex.cpp                             
  10. * 作    者:   计114-3 马琳
  11. * 完成日期:    2012  年  4 月  11 日 
  12. * 版 本 号:       V 1.0 
  13.  
  14. * 对任务及求解方法的描述部分 
  15. * 输入描述: 实现复数类中的运算符重载 
  16. * 问题描述:定义一个复数类重载运算符+、-、*、/,使之能用于复数的加减乘除。 
  17.             (1)方案一:请用类的成员函数完成运算符的重载; 
  18. * 程序输出: +、-、*、/,对复数运算后的结果。 
  19. * 程序头部的注释结束 

 

#include <iostream>   
  
using namespace std;  
  
class Complex  
{  
public:  
    Complex(){real = 0; imag = 0;}  
    Complex(double r, double i){real = r; imag = i;}  
    Complex operator+ (Complex &c2);  
    Complex operator- (Complex &c2);  
    Complex operator* (Complex &c2);  
    Complex operator/ (Complex &c2);  
    void display();  
private:  
    double real;  
    double imag;  
};  
//下面定义成员函数   
Complex Complex::operator+ (Complex &c2)  
{  
    return Complex(this->real + c2.real, this->imag + c2.imag);  
}  
Complex Complex::operator- (Complex &c2)  
{  
    return Complex(this->real - c2.real, this->imag - c2.imag);  
}  
Complex Complex::operator* (Complex &c2)  
{  
    Complex c;  
      
    c.real = real*c2.real - imag*c2.imag;  
    c.imag = real*c2.imag + imag*c2.real;  
      
    return c;  
}  
Complex Complex::operator/ (Complex &c2)  
{  
    Complex 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;  
}  
void Complex::display()  
{  
    cout << "(" << real << "," << imag << "i)" << endl;  
}  
  
int main()  
{  
    Complex c1(3, 4), c2(5, -10), c3;  
  
    cout<<"c1=";  
    c1.display();  
    cout<<"c2=";  
    c2.display();  
  
    c3 = c1 + c2;  
    cout<<"c1+c2=";  
    c3.display();  
  
    c3 = c1 - c2;  
    cout<<"c1-c2=";  
    c3.display();  
  
    c3 = c1 * c2;  
    cout<<"c1*c2=";  
    c3.display();  
  
    c3 = c1 / c2;  
    cout<<"c1/c2=";  
    c3.display();  
  
    system("pause");  
    return 0;  
} 


 

《C++第八周实验报告1-1(1)》---复数类中的运算符重载用类的成员函数完成_第1张图片

 

 

 

积累经验:成员函数 参数只需设置为一个,因为有隐藏的this指针。

你可能感兴趣的:(C++,c,System,Class,任务,iostream)