1.绝不在构造和析构过程中调用virtual方法,为啥? 原因很简单,对于前者,这种情况下,子类专有成分还没有构造,对于后者,子类专有成分已经销毁,因此调用的并不是子类重写的方法,这不是程序员所期望的. 2.在构造方法和析构方法中,直接调用virtual方法,很容易识别.还有一种情况要注意,那就是间接调用.比如:构造方法调用init方法,而init方法调用virtual方法. 3.在构造过程中,不能使用virtual从上到下调用,哪有什么办法弥补呢? 可以将子类必要的信息向上传递给父类构造方法.