Redis
派生类 标签描述

如题,什么时候需要将一个类的方法声明为虚函数(virtual),这个问题涵盖技术和哲学两个层面。 从技术角度来说,如果你希望在运行阶段(而非编译阶段)根据对象的实际类型来调用方法时,就需要将它声明为一个虚拟函数。 但还有一个哲学层面的解释。 有些人认为,一个类的每个方法都应该是虚拟的,以便派生类可以以基类可能没有预料到的方式重写基类的行为。这确实可以提供了最大的灵活性,避免了将来必须重新设计类的风险。但我认为这种可扩展性的成本被严重低估了。 一旦你将一个方法标记为虚拟的,你的生活就会变得更加复杂。每个虚拟方法都是一个扩展点,这意味着你必须假设最坏的情况可能会发生。 例如,调用虚拟方法时不能持...