引用是给变量取一个别名,所以引用传递会直接进行变量本身的传递。它的最大好处是可以把别处对变量的改变保留下来,第二好处是它提高了性能:如果函数的返回值是一个引用,那么,如上文所说,它会节约一组构造、赋值和析构过程。但是,函数返回引用往往会带来一些意想不到的错误:比如返回栈内存的引用,这是错误的 { int u=0; return u; //这是错的 } 另外一种用法就是在类的成员函数中返回类对象自身了,典型的是“operator +=”函数之类。 利用引用作为函数的形参可以在调用函数的过程中不是用传递值的方式进行虚实结合,而是通过传址方式使形参成为实参的别名,因此不生成临时变量(实参的副本),减少了时间和空间的开销。此外,如果重载函数的返回值是对象的引用时,返回的不是常量,而是引用所代表的对象,它可以出现在赋值号的左侧而成为左值(left value),可以被赋值或参与其他操作 (如保留cout流的当前值以便能连续使用“<<”输出)。 例如可以这样定义String 类 { 注意当返回值的时候,这样return的效率: return string(x+y) 与 string temp(x+y); return temp 这是不一样的!!!上面时创建临时变量并返回,这存在的是外部的存储单元,而下面等函数执行完,temp会释放,是基本数据类型的话存在拷贝的过程,对象的话存在拷贝构造和析构的过程。
|
c++引用
最新推荐文章于 2023-10-16 09:04:15 发布