2016 - 2024

感恩一路有你

c++重载运算符 C 赋值运算符重载,为什么要返回引用?

浏览量:1567 时间:2021-03-10 12:32:28 作者:admin

C 赋值运算符重载,为什么要返回引用?

由于赋值操作会更改左值,而这样的运算符不会更改操作数,因此赋值运算符重载会返回一个表达式(a=b)=C)的引用,该表达式会再次写入a=b。归还临时物品是合理的。如果返回引用,在大多数情况下不会出错或导致某些操作数意外修改。然而,这使得表达式(a,b)=C出现,这与约定有点不一致。当然,也可以返回常量引用。

C 中如何重载运算符"="用于复数的赋值?

=重载必须是成员函数,因此它应该比正常使用的函数少一个参数。而且,复数赋值后的返回值也应该是一个复杂对象,因此应该改为:Point&;operator=(constpoint&;AMPB){。。。//assign the real part and virtual part to return*this}返回类型仅供参考,以提高效率

我很久没有写C了。我给你这个主意。它可以用作左值,所以我们需要以return的形式返回引用*这个Friend函数没有这个指针,对吗?赋值运算符返回必须引用的类型,这是键

!因此,RT

1。因为它是运算符重载,所以它必须访问类的私有成员变量。根据类的封装要求,除了friend函数外,其他任何外部操作都是非法的,因此普通函数不能用来重载操作符。

2. 如果赋值运算符的重载函数没有显式定义,编译器将自动生成它。即使类成员变量包含指针,指针值也会被复制。因此,往往造成多个实例共享一个存储空间的尴尬局面。分解第一个定义的类时,剩余的实例仍然指向释放的存储空间,指针的值将从类中删除,但是成员变量的值已被破坏,实例仍然存在不可接受的现实。

3. 赋值函数是构造函数的重载,而不是普通成员函数,不能由对象调用。函数只需要一个相同类型的参数,以常量和引用的形式出现。友元函数的参数与重载运算符的个数一致,如,-、*、/等都需要两个参数。这些概念类似于数学概念。赋值运算符=不是数学概念中的运算符。因此,运算符重载的友元函数的参数不小于2(这些运算符是数学概念中的运算符)。

c++重载运算符 重载的意思 函数重载返回值必须相同

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。