gpt4 book ai didi

c++ - 复制赋值运算符返回* this vs(* this)

转载 作者:行者123 更新时间:2023-12-03 07:09:17 26 4
gpt4 key购买 nike

两者之间有区别吗

class MyString {
...
MyString &operator=(MyString other) {
swap(s, other.s);
return (*this);
}
};

class MyString {
...
MyString &operator=(MyString other) {
swap(s, other.s);
return *this;
}
};
我在其他 posts中读到,添加括号表示您是通过引用而不是值返回的。但是,如果定义了返回类型,则似乎没有什么不同。

最佳答案

您引用的链接讨论了另一种情况。在这种情况下

*this == (*this)
这取决于您的喜好,因为它们两者都会做完全相同的事情。就个人而言,我希望使用 *this避免不必要的括号
Operator precedence有时可以更改您要取消引用某些内容的方式。想象一下这种情况
*my_vector[0]
您认为这里会发生什么?在干吗
(*my_vector)[0]
要么
*(my_vector[0])
正确的答案是第二个。有时您可能想更改此行为,这就是 ()出现的时候。

关于c++ - 复制赋值运算符返回* this vs(* this),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64781202/

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