C ++何时使用`const` vs`const&`作为成员函数修饰符?

时间:2016-10-09 10:09:14

标签: c++ c++11 const member-functions

我正在学习C ++。我无法理解的一件事是,在成员函数声明之后何时放置&constconst &

一个例子:

class Foo
{
    // When to use which one?
    bool bar(int baz);
    bool bar(int baz) const;
    bool bar(int baz) &;
    bool bar(int baz) const &;
}

我的直觉说:

  • 尽可能使用constconst &,因为它声明该功能不会改变对象,因此在某处有const myfoo时仍可使用。
  • 传递&const &不会复制调用成员函数的对象,而后面没有&的函数也会。
  • 因此,除非你不能,否则总是使用const &

这些陈述是真的吗?

到目前为止,我无法找到有关此内容的信息,很可能是因为我不知道用于改变功能行为的功能背后的正确行话术语。

何时使用哪个版本?

0 个答案:

没有答案