首页 > 其他 > 详细

【09】绝不在构造和析构过程中调用virtual方法

时间:2014-07-22 23:00:05      阅读:311      评论:0      收藏:0      [点我收藏+]

1、绝不在构造和析构过程中调用virtual方法,为啥?

  原因很简单,对于前者,这种情况下,子类专有成分还没有构造,对于后者,子类专有成分已经销毁,因此调用的并不是子类重写的方法,这不是程序员所期望的。

2、在构造方法和析构方法中,直接调用virtual方法,很容易识别。还有一种情况要注意,那就是间接调用。比如:构造方法调用init方法,而init方法调用virtual方法。

3、在构造过程中,不能使用virtual从上到下调用,哪有什么办法弥补呢?

  可以将子类必要的信息向上传递给父类构造方法。

【09】绝不在构造和析构过程中调用virtual方法

原文:http://www.cnblogs.com/nzbbody/p/3523169.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!