• 【C++例题】复数类加减法运算重载—成员函数形式


    知识点:

    1.两个不同位置的const的不同意义

    2.形参有默认值的函数只能在类内给出,类外不能多余声明,即使默认值一样

    3.创建一个临时对象调用的是构造函数而非默认的复制构造函数

    4.重载的运算符可以当成普通运算符使用,但是要注意其本质是函数调用,要注意本体对象和传入参数的位置

    1. //例8-1_复数类加减法运算重载—成员函数形式
    2. #include
    3. using namespace std;
    4. //复数类定义
    5. class Complex {
    6. public:
    7. Complex(double r = 0.0, double i = 0.0);
    8. Complex operator+(const Complex& c2) const;
    9. Complex operator-(const Complex& c2) const;
    10. //函数的参数,是一个常量引用,表示该函数接受一个常量引用类型的 Complex 对象作为参数
    11. //const在函数声明的末尾表示这个函数是一个常量成员函数,即在这个函数中,不会修改对象的成员变量
    12. void display() const; //输出复数
    13. private:
    14. double real;
    15. double imag;
    16. };
    17. //构造函数
    18. Complex::Complex(double r /* = 0.0 */, double i /* = 0.0 */) :real(r), imag(i) {
    19. cout << "调用Complex构造函数" << endl;
    20. }
    21. //注意重载函数定义时的格式
    22. Complex Complex::operator+(const Complex& c2)const {
    23. //创建一个无名临时对象作为返回值
    24. return Complex(real + c2.real, imag + c2.imag);
    25. }
    26. Complex Complex::operator-(const Complex& c2)const {
    27. return Complex(real - c2.real, imag - c2.imag);
    28. }
    29. void Complex::display() const {
    30. cout << "(" << real << "," << imag << ")" << endl;
    31. }
    32. int main() {
    33. Complex c1(5, 4), c2(2, 10), c3;
    34. cout << "c1="; c1.display();
    35. cout << "c2="; c2.display();
    36. c3 = c1 - c2; //调用构造函数
    37. //c1 - c2 相当于函数调用 c1.operator-(c2)
    38. cout << "c3=c1-c2="; c3.display();
    39. c3 = c1 + c2; //正常引用
    40. //c1 + c2 相当于函数调用 c1.operator+(c2)
    41. cout << "c3=c1+c2="; c3.display();
    42. return 0;
    43. }
    1. // 输出
    2. 调用Complex构造函数
    3. 调用Complex构造函数
    4. 调用Complex构造函数
    5. c1=(5,4)
    6. c2=(2,10)
    7. 调用Complex构造函数
    8. c3=c1-c2=(3,-6)
    9. 调用Complex构造函数
    10. c3=c1+c2=(7,14)
  • 相关阅读:
    wireshark工具详解、数据包抓取分析、使用教程
    Day02-网页布局实战
    关系数据库的原子性
    Vuex入门
    总结单例模式的写法
    FindDiff_Qt找不同项目
    c++ | json库的使用 | josn静态库生成
    springboot+vue.js大学生竞赛报名作品评分管理系统
    软技能之UML图
    Day09-尚品汇-加入购物车操作
  • 原文地址:https://blog.csdn.net/2302_79596028/article/details/138173074