gpt4 book ai didi

c++ - 复合赋值和运算符的区别

转载 作者:行者123 更新时间:2023-11-30 01:51:50 25 4
gpt4 key购买 nike

我想重载两个运算符:+=和+

它们之间的本质区别是什么?+= 只是修改当前对象并 + 返回一个新对象吗?

最佳答案

正如您所说,operator+= 就地工作(它修改当前对象),而 operator+ 返回一个新对象并保持其参数不变。

T 类型实现它们的常用方法如下:

// operator+= is a member function of T
T& T::operator+=(const T& rhs)
{
// perform the addition
return *this;
}

// operator+ is a free function...
T operator+(T lhs, const T& rhs)
{
// ...implemented in terms of operator+=
lhs += rhs;
return lhs;
}

关于c++ - 复合赋值和运算符的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25627714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com