为什么要在C ++中返回引用?我知道一个原因是您可以使用赋值运算符左侧的函数,但 all 返回引用的最常见原因是什么?另外,您能否举例说明何时应该使用返回参考。
编辑 - 我想一个更好的问题是返回参考的最常见原因是什么。
答案 0 :(得分:2)
通常,当您希望该函数将访问对象授予其调用者时,可以从函数返回引用。这就是容器使用operator[]
:
value_type& operator[](size_type pos)
const value_type& operator[](size_type pos) const
迭代器返回operator++
的自引用,以支持链接操作,例如*++it
;就此而言,它返回operator*
的引用,以便授予对其迭代的容器的访问权限:
value_type& operator*() const {
return *internal_pointer;
}
iterator& operator++() {
++internal_pointer;
return *this;
}