C++ 笔记7 操作符重载_c++ arr[0]

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

//友元函数
friend const Complex operator-(
        const Complex& l,const Complex& r);

};
//重载-:全局函数形式
//c2-c1 ==> operator-(c2,c1)
const Complex operator-(const Complex& l,const Complex& r){

Complex res(l.m_r-r.m_r,l.m_i-r.m_i);
return res;

}

int main(void){

const Complex c1(1,2);
const Complex c2(3,4);
c1.print();
c2.print();
//Complex c3 = c1.operator+(c2)
Complex c3 = c1 + c2;
c3.print();//4+6i

//Complex c4 = operator-(c2,c1)
Complex c4 = c2 - c1;
c4.print();//2+2i

return 0;

}


#### 1.2 赋值类双目操作符: += -= …


1)表达式结果是左值,就是左操作数的自身  
 2)左操作数一定是左值,右操作数可以是左值也可以是右值  
 3)两种具体实现方式  
 –》成员函数形式(左调右参),L#R `==`> L.operator#®  
 –》全局函数形式(左右都参),L#R ==> operator#(L,R)



#include
using namespace std;
class Complex{

public:
Complex(int r,int i):m_r®,m_i(i){
}
void print(void) const {

    cout << m_r << '+' << m_i << 'i' << endl;
}
//+=:成员函数形式
//c1+=c2 ==> c1.operator+=(c2)
Complex& operator+=(const Complex& c){

    m_r += c.m_r;
    m_i += c.m_i;
    return \*this;
}
//-=:全局函数形式
//友元函数可以定义在类的内部,但本质还是全局函数
//c1-=c2 ==> operator-=(c1,c2)
friend Complex& operator-=(Complex& l,const Complex& r){

    l.m_r -= r.m_r;
    l.m_i -= r.m_i;
    return l;
}

private:
int m_r;//实部
int m_i;//虚部
};
int main(void){

Complex c1(1,2);
Complex c2(3,4);
c1+=c2;//c1.operator+=(c2)
c1.print();//4+6i

Complex c3(5,6);
(c1+=c2) = c3;
c1.print();//5+6i

c1-=c2;//operator-=(c1,c2)
c1.print();//2+2i

(c1-=c2) = c3;
c1.print();//5+6i

return 0;

}


### 2 单目操作符重载 #O


#### 1.1 计算类单目操作符:-(负) ~(位反) …


1)表达式结果是右值,不能对表达式结果再赋值  


![img](https://img-blog.csdnimg.cn/img_convert/d9f96ba1cb6121f9e6393d34395d18e5.png)
![img](https://img-blog.csdnimg.cn/img_convert/bf6570417d3f8628936af124fa8a0766.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值