知识卡片

成员函数也分左右值

普通读书笔记卡 · 1412

内容

成员函数尾部的 & 或 && 限定调用对象的值类别,可让左值对象返回可继续使用的引用,让临时对象提供适合移动的结果。限定的是调用对象而非普通参数;设计访问器时应兼顾寿命和复制成本。

参考来源

- 位置:《Effective Modern C++》第3章《移步现代C++》,条款十二:使用 override 声明重写函数(源文件:_epub-src/EPUB/text/ch004.xhtml) - 结论依据:原文通过对象访问器说明引用限定可区分调用对象的左右值,从而选择不同返回方式。 - 原始内容:成员函数的引用限定可以很容易的区分一个成员函数被哪个对象(即 *this )调用。它和在成员函数声明尾部添加一个 const 很相似,暗示了调用这个成员函数的对象(即 *this )是 const 的。