继承容器使用的Shell类

时间:2011-05-23 18:29:22

标签: c++ oop inheritance stl containers

让一组相关类都继承自同一个(基本上是空的)类是否是一种良好的做法,因此客户端可以将所有实例组织到一个容器中?

例如:

class One : public Foo { }
class Two : public Foo { }
class Three : public Foo { }

所以稍后我可以做std::vector<Foo*> myClasse s。

如果没有,那么什么是好的做法?

2 个答案:

答案 0 :(得分:2)

这是实现多态类型的标准做法。但是,基类是空的并不常见。除了其他任何东西,它必须实现一个虚拟析构函数,通常还必须提供其他(可能是纯粹的)虚函数,以便做任何有用的事情。

答案 1 :(得分:1)

只要您向Foo添加虚拟析构函数,以便以后dynamic_cast,就可以了。