0
class B
{
public:
B(int& a) :ref(a){}
B(B const&) = default;
int& ref;
};
void main()
{
int a1 = 1, a2 = 2;
B b1(a1), b2(b1), b3(a2);
b3 = b1;
}
如果編譯器執行的隱式定義的拷貝賦值運算符是,隱式定義的拷貝賦值運算符
B& operator=(const B& rhs)
{
this->ref = rhs.ref;
return *this;
}
爲什麼不能引用生成?綁定到變量a的初始別名不受影響,因爲在複製賦值運算符中,引用變量ref的數值會被更改。
http://stackoverflow.com/questions/26946201/why-do-reference-type-members-cause-implicitly-declared-copy-assignment-operator的DUP? –
'main'必須返回'int',而不是'void'。 – melpomene