C语言

我要理解 C++ 引用

2018-06-30  本文已影响43人  1999c1b720cd

背景

实际项目中涉及到对 C++ 引用的使用,这里记录个人对其的理解,并把它加入到个人「专业」知识结构

是什么

为什么

从使用的角度来分析,C++ 语言使用引用是为了解决函数调用时参数拷贝导致的性能问题

怎么用

方法参数

引用作为方法参数可以实现传出「方法结果」的目的

void square(int x, int& result) 
{
    result = x * x;
}

方法返回值

int& preinc(int& x) 
{
    return ++x;  // "return x++;" 这样写会出错?临时对象?
}

preinc(y) = 5; // 等同于 ++y, y = 5;

优化方法调用时参数拷贝开销

void f_slow(BigObject x) { /* ... */ }  
void f_fast(const BigObject& x) { /* ... */ }

BigObject y;

f_slow(y); // 很慢,因为要拷贝 y 对象到 x 对象
f_fast(y); // 很快,因为直接访问只读变量 y 的地址

内部原理

引用就是对象的别名

优缺点

最佳实践

练习题

总结

参考

【1】C++ 引用 https://en.wikipedia.org/wiki/Reference_(C++)

上一篇 下一篇

猜你喜欢

热点阅读