2016 - 2025

感恩一路有你

c++重载运算符 既然有了=赋值操作符重载,为什么还要调用拷贝构造函数?

浏览量:2095 时间:2021-03-10 12:09:46 作者:admin

既然有了=赋值操作符重载,为什么还要调用拷贝构造函数?

复制构造函数用于在未生成对象时构造另一个对象。

=赋值运算符重载用于在对象已存在时使用另一个对象构造对象。有必要判断它不是通过给自身赋值来构造的。同时判断部分构件不需要重新构造。

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

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

c 类初始化,复制构造函数与运算符重载,在什么时候用?

初始化是第一个实例,没有分配其他实例。它是这样的:a

复制构造在第一个实例上有其他实例赋值。例如,a,B,B=a,它与copy构造函数的编写相匹配,copy构造函数的参数就是这类对象的引用。

赋值函数在实例化后调用,而不是在第一次赋值后调用。例如,a=B意味着赋值函数的调用必须在实例化对象之间。

c++重载运算符 使用赋值运算符定义函数 赋值运算符函数

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