Father a;
Son b;
a = b;
b = a; //报错
Father *p = &b;
son *p1 = &a;//报错
Father &s = b;
son & x = a; //报错
派生类不能赋值给基类,派生类的成员比基类多。采取b=a赋值操作时,b对象会调用operator=(),存在找不到成员的风险。
如果派生类指针指向基类对象,那么会把一部分不是基类对象的内存地址包含进来,那么在使用该指针时,常常修改或删除了不是基类对象的数据,产生一些不易察觉非常严重的后果。引用原因相同。