gpt4 book ai didi

c++ - 使用运算符重载表格

转载 作者:行者123 更新时间:2023-11-27 22:54:49 25 4
gpt4 key购买 nike

我想在C++中了解以下类似的运算符重载形式:

ClassName & operator+(ClassName &other)
ClassName operator+(ClassName &other)
Classname operator+(const ClassName &other)
Classname operator+(const Classname other)
Classname operator+(Classname other)

用法有什么区别?

最佳答案

第一个返回一个引用,并获得一个引用-这意味着理论上您可以更改两个参数,然后返回一个引用,也可以更改该引用。这通常不是您想要执行的操作(2 + 3不会返回可以重新分配给17的5)。

第二个是相同的,但没有引用返回。

第三是const reference-不能修改的引用。这通常是您要执行的操作,因为您可以快速获取元素(获取元素),但是无法更改(偶然或不更改)。

第四个就像第三个一样,但是您出于某种原因复制了一个参数并将其设为const。这毫无意义。

最后一个只是复制一份。

它们之间并没有太大的区别-如果考虑operator+要做些什么,那么其中的一些就没有多大意义了。它们不同的地方主要是您如何获取参数-而且在大多数情况下,您希望快速获取参数,因此const ClassName& other可能是最好的选择。

关于c++ - 使用运算符重载表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34283119/

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