考虑以下代码:
#include <iostream>
using namespace std;
class B{
public:
B(){}
};
class A
{
public:
A(){}
A(B &b){
}
A(const B &b){
cout<<"cccddd"<<endl;
}
};
int main()
{
B b;
A c(b);
A a;
a=b; //ok
A &ref = b; //error and why???
}
为什么分配给 a 的 b 可以,但分配给 ref 的 b 是非法的???