我正在学习C ++。我无法理解的一件事是,在成员函数声明之后何时放置&
,const
或const &
。
一个例子:
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 &;
}
我的直觉说:
const
或const &
,因为它声明该功能不会改变对象,因此在某处有const myfoo
时仍可使用。&
或const &
不会复制调用成员函数的对象,而后面没有&
的函数也会。const &
这些陈述是真的吗?
到目前为止,我无法找到有关此内容的信息,很可能是因为我不知道用于改变功能行为的功能背后的正确行话术语。
何时使用哪个版本?