我正在为我的 OOP 期末学习,遇到了一个让我有点难过的问题。问题是“解释为什么通过公开继承 List 类来构建 Stack 类是一种糟糕的方法。描述一个更好的解决方案。”
我不确定我的回答是否正确,但是否因为“公开继承...”?并且最好改为私有(private)继承,这样除了 Stack 之外没有其他类知道继承?
最佳答案
如果派生类公开继承自基类,则派生类是基类的一个实例,可能具有一些额外的功能或重写的功能。在堆栈和列表的情况下,堆栈不是列表 - 它在逻辑上不执行列表操作,如搜索、连接、反转等 - 因此从列表继承不是一个好主意。
您可以在这里使用私有(private)继承,但这不是一个特别优雅的解决方案。相反,您可以通过将列表作为私有(private)数据成员来实现堆栈。这就是为什么您经常听到“更喜欢组合(拥有私有(private)数据成员)而不是继承”的原因。
希望这对您有所帮助!
关于c++ - 为什么通过公开继承另一个类来构建一个类是一种糟糕的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23036530/