c++ - 使用基类向量和派生类指针进行对象切片
问题描述
这是我的场景的简化版本:
class Base
{
class Entry
{
...
}
std::vector<Entry *> entryList;
void processEntry() = 0;
void OnProcessEntry(); // processEntry callback
};
class Derived : public Base
{
class Entry : public Base::Entry
{
...
}
void processEntry()
{
...
entryList.push_back(new Entry);
OnProcessEntry();
}
};
当我将Derived::Entry
指针复制到entryList
时,对象被切片到Base::Entry
. 有什么方法可以让条目在基类方法中恢复到原来的“未切片”状态OnProcessEntry
?
如果有人可以推荐一个更合适的标题,请做,我会编辑。
谢谢。
解决方案
推荐阅读
- scala - “用户未初始化火花上下文”在 SPARK YARN 集群模式下使用 Scala 代码时出错
- python - 正则化逻辑回归低准确率
- mysql - Ansible playbook 错误:无法在路径中找到所需的可执行 mysql
- javascript - 如果另一个正在运行,jQuery会阻止动画触发
- php - PHP不显示无序列表
- google-api - 从评论中获取星级评分,适用于多个企业
- ios - 点击发送按钮时如何防止键盘隐藏在 UITextView 中?
- excel - 基于 2 个因素输出文本
- maven - mvn - 在 maven 存储库中查找错误的 url
- javascript - 如何从 Bootstrap 4 上的复选框按钮中检索值?