【发布时间】:2016-08-20 06:02:20
【问题描述】:
我知道当将派生对象分配给基础对象时,会发生切片。派生类对象的第一部分将复制到基础对象。 这是我的问题:
- vptr(虚拟表指针)会被复制到基类对象吗?
- 如果vptr没有复制到基类对象(我猜,因为对象赋值不会导致多态),为什么?有什么规则可以支持吗?
【问题讨论】:
标签: c++ virtual derived-class
我知道当将派生对象分配给基础对象时,会发生切片。派生类对象的第一部分将复制到基础对象。 这是我的问题:
【问题讨论】:
标签: c++ virtual derived-class
不,没有 vtable 指针被复制。也不可能,因为目标对象在赋值之前和之后都是真正的基类类型。
在切片对象上调用的虚拟方法将调用基类实现。
【讨论】: