继承派生产生的切割问题
时间:2022-04-14 16:44
派生类对象赋给基类对象合法,但派生类对象有、基类没有的数据成员(成员函数)在赋值过程中会丢失,即产生切割问题。
改为:
数据成员没有丢失,但必须注意必须使用虚函数访问。基类people将print()声明为virtual,,所以一旦编译器看到以下调用就会检查people和teacher的virtual表,判断pp1是指向pt1类型的对象:pp1->print(),因此就会使用以下函数代码:teacher::print(),而不会去使用people::print() 的代码
继承派生产生的切割问题,布布扣,bubuko.com