C++之运算符重载(二元)
2021-06-22 14:03
标签:soscw 第一个 默认 更改 img 设定 返回值 函数重载 技术分享 一、加号+ 1.成员函数重载
2.友元函数重载
二、输出符号
三、索引符号 [ ]
四、补充说明 1.《二元运算符重载》课程评论: (一)为什么 如果在类中定义非友元成员函数,默认第一个参数默认会传入this*指针,这时就无法实现cout在前 因为二元运算符中的调用格式是 参数一 运算符 参数二 这也就是为什么 加号运算符可以使用非友元成员函数,因为参数一是一个this*指针,参数二是其它对象 假设定义为非友元成员函数,那么第一个参数系统默认为this*(且无法更改),第二个参数是cout 那么调用格式就变成了 coor (二) cout 上面这个例子中,第一次重载 第二次重载的时候是将这个cout 来吧!让我给您们解释一下为什么 简而言之: 对于友元重载没有this指针指向当前对象的!这个可以从单目运算符重载时返回形参而不能返回this可知! 所以必须为参数一+运算符+参数二出现的表达式才能用友元! 二元运算符的成员函数重载,或一元运算符成员函数重载,默认在符号前有个this指针,指向当前对象的! 这也就为什么,二元重载还需有一参,一元重载不用参! 好了~~~这就很好解释,若 3.对于输出运算符“ 友元函数重载的第一个参数可以是成员函数重载中的this指针也可以是其他的值,可是索引运算符的第一个参数必须是this指针, 因为只有第一个参数是this指针才能够传入索引,才能够使得这个索引所表达的是当前这个对象当中的成员 C++之运算符重载(二元) 标签:soscw 第一个 默认 更改 img 设定 返回值 函数重载 技术分享 原文地址:https://www.cnblogs.com/Tang-tangt/p/9678276.html
这里对于输出运算符重载讲得一般,当时课程上学习的时候,这里返回值为out是有原因的。
2.《二元运算符重载》课程评论:
4.索引运算符“[]”不能采用友元函数重载 原因??