我的问题是参考以下链接:
我无法关注这些帖子。有人可以解释一下:
&
给定代码段末尾的实际作用是什么?auto operator=(const string& rhs) &;
.- 为什么
&
这个给定代码片段的末尾是多余的?(还请确认它是多余的还是有问题的)auto operator=(const string& rhs) & = delete;
- 这个陈述是否有效,
auto operator=(const string&& rhs) &&;
?
如果限定符&
阻止右值的复制分配,它是否已经被指定的输入参数的类型注意?( const string& rhs
)。
在以下示例中,无论有无限定符,右值赋值都得到相同的结果。
class copy_assignment{
public:
copy_assignment& operator=(copy_assignment& a) & {cout << "copied"; return a;};
copy_assignment* get_ca(){return new(copy_assignment);}
};
int main()
{
copy_assignment a, b;
a = *b.get_ca();
}