我正在开发一个具有某些功能的类,我认为可能需要稍后扩展,但现在不能.如果要扩展类,那么我认为这会使实例化基类毫无意义.
例如,假设我的基类是树.一种方法是在树类中放置树需要做的所有事情,并将其留在那里.但是,这个树在以后的生活中可能对程序的其他方面很有用,所以我考虑过创建一个纯虚onNodeVisited函数.派生类可以实现自己的版本onNodeVisited,而不必担心基类中定义的树遍历的细节.
不使用纯虚函数并将树功能和特定于应用程序的功能保存在一个类(虚拟onNodeVisited)中是否有意义?或者,我应该使树类抽象并为特定于应用程序的部分实现一个子类.
我现在不会决定。稍后,您可以为 Tree 创建一个抽象基类,并将代码移到那里(如果有意义的话)。
对于这种事情,继承的另一个选择是调用函数指针或函子类型。重用要容易得多,因为您不必为每种新情况不断创建新类。