我有一些代码,我真的想从构造函数中调用虚方法。我知道这被认为是不安全的,而且我对对象构造也足够了解,也理解为什么会这样,详情请参考此处。我也没有遇到这些问题。目前我的代码正在工作,我认为应该没问题,但我想确认一下。
这是我正在做的事情:
我有一些类层次结构,有一个普通的公共函数,只是像往常一样转发到私有的虚方法。然而,在构造对象时,我确实想调用这个公共方法,因为它正在将所有数据填充到对象中。我将绝对确定这个虚调用来自叶子类,因为在类层次结构的任何其他部分使用这个虚方法根本毫无意义。
所以,在我看来,一旦我进行虚调用,对象创建就应该完成,并且一切都应该没问题。还有什么可能出错吗?我想我必须用一些大注释来标记这部分逻辑,以解释为什么这个逻辑永远不应该移动到任何基类中,即使它看起来可以移动。但除了其他程序员的愚蠢之外,我应该没问题,对吧?