继承外壳类以供容器使用

Inherit Shell Class for Container Use

本文关键字:外壳 继承      更新时间:2023-10-16

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

例如:

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

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

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

这是实现多态类型的标准做法。然而,基类为空是不常见的。除此之外,它必须实现一个虚拟析构函数,通常还必须提供其他(可能是纯的)虚拟函数才能做任何有用的事情。

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