gpt4 book ai didi

c++ - "incorrect behaviour"++ 和 += 运算符不修改原始对象吗?

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

今天参加考试,他们问了我 4 个运算符(operator),其中一个需要“正确行为”的引用。

Foo operator+(Foo lhs, Foo rhs);
Foo operator++(Foo rhs);
Foo operator+=(Foo lhs, Foo rhs);
bool operator<(Foo lhs, Foo rhs);

根据解的正确答案:

Foo operator++(Foo &rhs);
Foo operator+=(Foo &lhs,Foo rhs);

现在我质疑;标准是否强制要求“正确的行为”涉及以特定方式(引用)在解决方案中使用运算符,或者如果你 - 程序员 - 希望原始对象可以省略引用不受影响?

最佳答案

要点似乎是,如果您想从调用者的角度修改函数参数,则需要引用。自 +=++通常期望修改他们的操作数,那些应该有引用,否则他们不太可能做人们期望的事情。 <+但是不要修改它们的任何操作数,因此按值传递给它们可以提供合理的语义。

关于c++ - "incorrect behaviour"++ 和 += 运算符不修改原始对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23890098/

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