必须考虑如下语意
b = a - a
这种情况,如果你不返回新对象,而是直接在当前对象上减,结果就不对了。
C++关于类中重载运算符的问题
class Type{
int i;
public:
friend const Type operator-(const Type& a)
{
return Type(-a.i);
}
friend Type& operator-(Type& a)
{
a.i *= -1;
return a;
}
};
为什么书上的代码 要将这种一元的运算符重载(+除外)用新创建一个类对象 再按值进行返回的方式来重载呢,是为了使用临时对象语法吗还是其他的原因呢?
还有就是可不可以简单的理解为如果是创建一个新的对象来返回就按照值进行返回,没有创建新对象进行返回(返回传入参数或者this指针的解引用这种)就简单记忆为按照引用进行返回呢?
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
1条回答
为你推荐
- C++ 运算符重载 代码报错问题
- c++
- 2个回答
- C++关于类中重载运算符的问题
- c++
- c语言
- 1个回答
- 关于类中的运算符重载中this指针使用的问题
- c++
- c语言
- 2个回答
- 一点关于c++输入输出与重载的问题
- c++
- 1个回答
- 自增运算符重载问题?求解
- c++
- 1个回答
- C++重载运算符加减乘除。
- c++
- 1个回答
- C++关于运算符重载的问题
- c++
- 1个回答
- C++运算符重载的问题...
- c++
- c语言
- 1个回答
- C++运算符重载问题,为什么重载+-运算符时operator关键字前不需要加&,重载=时operator前必须加&号啊
- 运算符重载
- c++
- 2个回答
- 重载运算符的问题,如何实现int + (某类对象)
- c++
- 2个回答
- 请教,在C++语言里左值和右值分别和运算符重载的实现有什么关系?
- c++
- 3个回答
- c++中重载问题,为何"+"不能连续用?
- c++
- 3个回答
- c++ 运算符重载问题求大神
- 3个回答
- 一个关于C++运算符重载的问题
- 2个回答
- 关于C++加法运算符重载的一个超简单问题
- 3个回答
- 关于C++后置运算符重载一个超简单问题
- 3个回答
- C++ 操作符重载的内存释放问题
- 运算符重载
- c++
- 复制构造函数
- 4个回答
- 一个关于c++构造函数和运算符重载的问题
- c++
- 2个回答
- c++运算符重载问题,友元函数
- c++
- 1个回答
- C++ 类 如何重载运算符
- c++
- 运算符
- 重载
- 4个回答