什么是C ++或Java中的对象切片?

对象切片用于描述将派生类的对象分配给基类的实例时的情况。这会导致派生类对象的方法和成员变量丢失。这被称为信息被切掉。例如,

class Foo {

   int a;

};

   class Bar : public Foo {

   int b;

};

由于Bar扩展了Foo,因此它现在具有2个成员变量a和b。因此,如果创建Bar类型的变量bar,然后创建Foo类型的变量并分配bar,则在此过程中将丢失成员变量b。例如,

Bar bar;

Foo foo = bar;

在这种情况下,关于b的信息in会丢失在一个条中。这称为成员切片。

以上是 什么是C ++或Java中的对象切片? 的全部内容, 来源链接: utcz.com/z/316315.html

回到顶部