C++中的引用
来源:互联网 发布:威风堂堂mmd动作数据 编辑:程序博客网 时间:2024/05/24 06:49
C++中的引用:
1. 引用作为返回值:
C++中没有高效率的对象返回,所以返回值一定不要是一个直接的对象,除非是 return new A();,这种模式好象在vc++中专门做过优化的.当返回一个变量时,会产生拷贝。当返回一个引用时,不会发生拷贝,你可以将引用看作是一个变量的别名,就是其他的名字,引用和被引用的变量其实是一个东西,只是有了两个名字而已。
问题的关键是,当你想要返回一个引用而不是一个拷贝时,你要确保这个引用的有效性,比如:
int & fun() { int a; a=10; return a; }
这样是不行的,因为a会在fun退出时被销毁,这时返回的a的引用是无效的。
这种情况下,如果fun的返回类型不是int & 而是int就没有问题了。
因此,要返回一个引用时,“临时变量”不能是“临时”的,至少得等函数外部使用完毕这个引用之后,才能销毁它。
A a(){...;return *this;}会调用拷贝构造函数和析构函数.
A& a(){...;return *this;}不会调用拷贝构造函数和析构函数.
- c语言中的引用
- 【C++】:C++中的引用
- 深入探讨C 中的引用
- 深入探讨C 中的引用
- C++/CLI中的引用类型
- 深入探讨C 中的引用
- C++中的引用
- [C++]C++中的引用(转)
- 【引用】C中的类型转换
- C语言中的引用调用
- 深入探讨c++中的引用
- C/C++中的指针、引用和JAVA中的引用
- C/C++中的引用和指针
- c语言形参中的引用变量
- C/C++中的引用和指针
- C/C++中的引用和指针
- c语言实现cpp中的引用传递
- C和C++中的引用和指针
- Ubuntu9.10下eclipse的修正
- Linux集群-软件体系结构小探
- php 正则表达式
- AT89s52----ISP下载电路图及软件
- Kubuntu 9.10 安装优化手记
- C++中的引用
- 敲响OO时代的丧钟!
- 我的异常网-异常错误汇总-2009-12-10
- 我的异常网-异常错误汇总-2009-12-10
- CSDN
- VS2005 PROBLEM: 没有找到MSVCR80D.dll
- 1209 perl的变量
- 几项关注过的技术趋势图 By Google
- Css常见问题归纳