【发布时间】:2011-07-20 04:47:41
【问题描述】:
假设我有 Derived* derivedPtr;
我想要来自derivedPtr 的Base baseObject;
基础基础对象 = *derivedPtr;会使用适当的基类成员变量创建 baseObject 吗?
谢谢
【问题讨论】:
标签: c++ derived-class superclass
假设我有 Derived* derivedPtr;
我想要来自derivedPtr 的Base baseObject;
基础基础对象 = *derivedPtr;会使用适当的基类成员变量创建 baseObject 吗?
谢谢
【问题讨论】:
标签: c++ derived-class superclass
是的。这实际上称为“切片”,因为您只是从派生类中切掉所有内容。
【讨论】:
您可以使用动态转换来完成此操作。
例如
Base* baseObject = dynamic_cast<Base*>(derivedPtr);
【讨论】:
Derived* obj = new Derived;
base objOne = (*obj) ; // Object slicing. Coping only the Base class sub-object
// that was constructed by eariler statement.
【讨论】: