温故而知新七(C++)

创作人QQ:851301776,邮箱:[email protected],欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!

个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习

一、操作符重载

1.双目操作符 L#R

1.1 计算类双目操作符:+ -
-->表达式结果是右值(不能对表达式进行赋值操作)
-->左右操作数既可以是左值也可以是右值
-->实现方式有两种
    1)成员函数形式(左调右参)
    L#R的表达式可以被编译器处理成L.operator#(R)成员函数调用形式,该函数的返回结果就是表达式的结果.
   ...
    2)全局函数形式

#include <iostream>
using namespace std;
//复数
class Complex{
public:
    Complex(int r,int i):m_r(r),m_i(i){}
    void print(void)const{
        cout << m_r << '+' << m_i << 'i'
            << endl;
    }
    //c1+c2 ==> c1.operator+(c2)
    /*1)修饰返回值,返回右值 
     *2)常引用参数,支持常量型右操作数
     *3)常函数,支持常量型左操作数*/
    const Complex operator+(
            const Complex&am

猜你喜欢

转载自blog.csdn.net/weixin_43155199/article/details/125595204