0
我知道将派生对象分配给基础对象时,会发生切片。派生类对象的第一部分将被复制到基础对象。 这里是我的问题:将派生类对象分配给基类对象(我的意思是对象分配,而不是指针)时会发生什么
- 将vptr(虚拟表指针)复制到基类对象吗?
- 如果vptr没有被复制到基类对象(我猜,因为对象赋值不会导致多态),为什么?有什么规定可以支持吗?
我知道将派生对象分配给基础对象时,会发生切片。派生类对象的第一部分将被复制到基础对象。 这里是我的问题:将派生类对象分配给基类对象(我的意思是对象分配,而不是指针)时会发生什么
不,不复制vtable指针。也不可能,因为目标对象在赋值之前和之后都是真正的基类类型。
在切片对象上调用的虚方法将调用基类实现。