复制兼容原则,好像是这么叫来,因为B中的信息完全满足A所需要的所以是可以这样赋值的,反过来就不行了。
这个表达式除了调用B的构造函数外,也调用了A的复制构造函数,即 A(const A & a);在c++中,以基类的指针或是引用作为参数的函数可以接受子类的指针或是引用。
不是必须的,如果在构造函数中就开始在堆上分配内存的话,就需要在拷贝构造函数和赋值构造函数中运用深拷贝了。
就像你有两根线,一长一短,你可以把长(B)的剪短(A),但不能把短(A)的变长(B)