【问题标题】:what happens when assign a derived class object to a base class object(I mean object assginment, not pointer)将派生类对象分配给基类对象时会发生什么(我的意思是对象分配,而不是指针)
【发布时间】:2016-08-20 06:02:20
【问题描述】:

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

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

【问题讨论】:

    标签: c++ virtual derived-class


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-02
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      相关资源
      最近更新 更多