const&和const作为返回类型
2014-03-03 21:32
190 查看
&类型和const&作为返回类型的区别:
1.引用类型作为返回类型
一.可以作为左值(可以对其赋值),如果返回值没有&则不不能作为左值
二.省去拷贝构造,加快效率(还没有验证)
2.cosnt&做为返回类型
一.不能作为左值
二.省去拷贝构造
三.左值和右值的区别
左值:左值必须应该是一个变量或者是表达式等,但是它的物理位置是可以确定的,即编译器能确定其所在内存的地址
右值:可确定或不确定均可
自增(++)或自减(--)不能作为左值
3.const作为变量或参数
一.作为参数时
1.指针类型
例如const char *p
则不能对指针所指向的内容改变
若为char *const p
则不能改变指针的指向,即指针变量p的值
2.非指针类型
不能改变其值
例如 void Fun(const int nNum){nNum = 100;}//错误
1.引用类型作为返回类型
一.可以作为左值(可以对其赋值),如果返回值没有&则不不能作为左值
二.省去拷贝构造,加快效率(还没有验证)
2.cosnt&做为返回类型
一.不能作为左值
二.省去拷贝构造
三.左值和右值的区别
左值:左值必须应该是一个变量或者是表达式等,但是它的物理位置是可以确定的,即编译器能确定其所在内存的地址
右值:可确定或不确定均可
自增(++)或自减(--)不能作为左值
3.const作为变量或参数
一.作为参数时
1.指针类型
例如const char *p
则不能对指针所指向的内容改变
若为char *const p
则不能改变指针的指向,即指针变量p的值
2.非指针类型
不能改变其值
例如 void Fun(const int nNum){nNum = 100;}//错误
相关文章推荐
- LRU Cache
- Java RandomAccessFile用法
- 9-0累减
- 大数乘大数
- HotSpot VM源码 目录结构
- code forces 399B Red&Blue Balls
- Java中hashCode的作用
- Jstatd命令(Java Statistics Monitoring Daemon)
- C++长数的乘法
- 如何自定义iOS中的控件
- objecti-c中的 比较前置串和后置串, 遍历数组和字典的用法
- NHibernate 中 text 和 image 数据类型在配置文件中对应类型
- D3D基本框架:即D3D头文件分类
- JAVA中使用Schema校验XML
- get PEB or TEB
- Intent
- 使用codecs模块,在Python中完成字符编码
- 人生第一C
- tomcat一些知识点
- 多数据源的MapReduce作业(二)--基于Distributed的复制联结