C ++抽象基类的集合

时间:2009-11-21 22:27:10

标签: c++ inheritance virtual

如何使用基类作为集合值来创建实现抽象基类的STL集合,而不使用指针?

Boost中有什么东西允许我实现它吗?该集合专门是地图。

由于

3 个答案:

答案 0 :(得分:4)

你无法完全避免指针。如果要避免Object slicing,则必须在集合中存储指针。 Boost有一个容器可以很好地隐藏指针:ptr_map

答案 1 :(得分:1)

答案 2 :(得分:0)

你不能

考虑编译器如何生成代码来执行此操作? 没有指针意味着必须在静态数组中的“集合本身”中分配存储。但子类所需的存储可能会改变!那么编译器将如何做呢? ......它不能......