【发布时间】:2016-12-09 07:47:30
【问题描述】:
我知道const 限定符在方法声明中的含义(使*this const),但我无法理解这些行中的& 符号的含义:
MyClass &operator =(const MyClass&) & = default;
// ^- this one
bool operator ==(const MyClass &right) const &;
// that one -^
decltype(*this) 不总是MyClass& / const MyClass& 吗?那么这里的 & 符号是什么意思呢?
【问题讨论】:
-
这意味着该方法只能在
MyClass类型的左值上调用(而不是右值)。所以不能做MyClass() = my_class_instance或functionReturningMyClass() = my_class_instance。同样,关闭括号后的&&表示“只能在右值上调用”。 -
致反对者:有没有试过用谷歌搜索特殊字符?效果不是很好。 @IgorTandetnik,你为什么不把你的评论作为答案?
-
@Kay 可能是因为他知道这会被欺骗,并希望避免在重复的问题上发布重复的答案。
标签: c++ methods reference qualifiers