在C++中,我们允许
将派生类对象赋给基类对象。(不允许将基类对象赋给派生类对象)
只会将基类对象成员赋值,a1=b1;(A是基类,B是派生类)
用基类指针指向派生类对象。(不允许用派生类指针指向基类对象)
基类指针只能操作基类中的成员, pA=&b1; (A是基类,B是派生类)
基类引用作为派生类的别名。(不允许派生类引用作为基类的别名)
基类引用只能访问基类成员,A &a=b1;(A是基类,B是派生类)
原因很简单,派生类一般含有基类没有的成员,将派生类赋给基类成员我们才能保证基类中每个成员都能被赋值,用基类指针操作派生类我们才能保证不会操作到可访问空间外,同样的道理也只能用基类引用作为派生类的别名。