c++的某些操作符为什么要返回引用?为什么经常有书中说对于一些操作符我们要尊重内置类的操作符,所以要返回引用
来源:互联网 发布:国外大学网络课程证书 编辑:程序博客网 时间:2024/05/28 15:43
这个问题一直困扰着我,因为重载赋值操作符的时候,左操作数的所有成员都已经被右操作数相应的成员赋值了,那我们为什么要返回*this的引用呢,这是因为在c++中允许存在
a=b=c的情况出现,这个时候如果不返回值,则操作符就没有操作数可处理了,显然要返回值。那么为什么要返回引用呢,这个就是为了与内置类型的赋值操作符,操作方式一致,因为当 int a=b的时候,b是b的本省,那么对于类对象a=b=c的过程中,先进行b=c操作,则这里返回b的引用,实际就是b换了个别名,这样就遵循了内置类型。同样的,对于*(解引用),[ ](下标操作符)都是要返回引用。这里并不是理解中的为了提高效率,更多的是符合内置类型的方式。对于有些没有复制构造函数的类型,不得已不得不返回引用。这里特别强调的是当对类对象重载输入输出操作符的时候,os<< a << b ,除了其没有复制构造函数外,还因为其返回引用了就支持这种连续的类型了。
0 0
- c++的某些操作符为什么要返回引用?为什么经常有书中说对于一些操作符我们要尊重内置类的操作符,所以要返回引用
- 解释下标操作符为什么要返回引用
- c++中重载输出操作符,为什么要返回引用
- C++中赋值操作符为什么要返回引用类型
- 为什么operator=操作符返回引用
- 为什么赋值运算符要返回引用?
- 为什么赋值运算符要返回引用?
- 为什么要返回引用
- C++运算符重载,+-*/的重载,返回值为什么是对象而不是对象的引用?而流操作符<< 和 >> 却返回的是引用?
- C++运算符重载,+-*/的重载,返回值为什么是对象而不是对象的引用?而流操作符<< 和 >> 却返回的是引用?
- c++赋值运算符为什么要返回引用?
- C++赋值运算符重载,为什么要返回引用?
- 赋值运算符重载为什么要返回引用
- /c++赋值运算符为什么要返回引用
- c++中有些重载运算符为什么要返回引用?
- c++中有些重载运算符为什么要返回引用
- 友元 重载<<运算符为什么要返回ostream的引用?
- 操作符重载:什么时候返回引用
- 第十七周 【OJ-问题 E: 重复字符串】
- 应用汇
- CSS
- hbase安装
- Linux中cut命令
- c++的某些操作符为什么要返回引用?为什么经常有书中说对于一些操作符我们要尊重内置类的操作符,所以要返回引用
- Android自定义发送本地广播
- java中的多线程
- linux下tomcat集群的负载均衡
- Android 通知栏Notification的整合
- 一个服务器下面配置多个网站
- DOS:变量延迟详解(新手推荐)
- Java中的一个类怎么调用另一个类中的方法?
- linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间