派生类指针指向基类对象切割
时间: 2023-10-14 22:05:30 浏览: 150
派生类对象替换基类对象-c++面向对象课程设计
派生类指针指向基类对象会发生切割,也称为对象切割(Object Slicing)。
当派生类指针指向基类对象时,只会保留基类部分的数据成员和方法,派生类特有的数据成员和方法会被丢弃,这就是切割。因为派生类对象比基类对象要大,所以基类对象无法完全容纳派生类对象,从而导致切割。
举个例子,如果有一个派生类D,它继承了一个基类B,而D有一个独有的数据成员c,如果将D的指针指向B的对象,则c会被丢弃,因为B类没有这个数据成员。
这种切割的情况可能会给程序带来问题,因此在使用派生类指针时,需要注意指针指向的对象是否是基类对象,以避免切割导致的错误。
阅读全文