将派生类对象分配给基类对象时会发生什么(我的意思是对象断言,而不是指针)

what happens when assign a derived class object to a base class object(I mean object assginment, not pointer)

本文关键字:对象 断言 意思是 我的 指针 分配 派生 基类 什么      更新时间:2023-10-16

我知道当将派生对象分配给基对象时,会发生切片。派生类对象的第一部分将复制到基对象。这是我的问题:

  1. vptr(虚拟表指针)会被复制到基类对象吗?
  2. 如果 vptr 没有复制到基类对象(我想,因为对象赋值不会导致多态性),为什么?有什么规则可以支持这一点吗?

不,没有复制任何 vtable 指针。 也不可能,因为目标对象在赋值之前和之后都是真正的基类类型。

在切片对象上调用的虚拟方法将调用基类实现。