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

时间:2016-04-26 12:03:40

标签: c++ virtual derived-class

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

  1. 是否将vptr(虚拟表指针)复制到基类对象?
  2. 如果没有将vptr复制到基类对象(我猜,对象赋值不会导致多态),为什么?是否有任何规则支持这个?

1 个答案:

答案 0 :(得分:1)

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

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