【发布时间】:2017-08-12 00:59:03
【问题描述】:
是否可以将std::vector<std::shared_ptr<Object>> 转换为SpecializedObject 继承Object 的std::vector<std::shared_ptr<SpecializedObject>>,而无需构建新数组(或遍历向量)?
【问题讨论】:
-
简短回答:不。长答案:不,真的。
-
@skypjack 即使保证存储的数据是 std::shared_ptr
? -
@Talesseed:确实。您仍然有两种基本不相关的元素类型。
-
如果能保证向量中事物的类型,为什么不先创建一个该类型的向量呢?
-
嗯,是的,这是一个解释。变体向量的向量可能更有意义。
标签: c++ vector polymorphism reinterpret-cast static-cast