首页 > 其他 > 详细

【39】明智而审慎第使用private继承

时间:2014-01-21 21:30:28      阅读:366      评论:0      收藏:0      [点我收藏+]

1、private继承意味着,根据某物实现出,继承父类的实现,关闭父类的接口,并不是Is-A的关系,不满足里氏代换,继承的内容访问权限都修改为private。

2、那么问题来了,复合也表达根据某物实现出,那到底使用private继承还是复合呢?

3、优先使用复合,除非是下面的情况:a、使用对象的protected成员;b、想要重新定义virtual方法。

4、考虑下面的极端情况,有个empty类,占用空间大小为0,也就是说,没有字段和virtual方法,如果使用继承,子类大小不增加。如果使用复合,C++规定大小为0的独立对象,插入一个char到空对象,考虑到对齐,实际占用int。也就是说,在这种极端的情况下,继承比复合节省空间。对于空间格外重要的使用场景,需要考虑这种情况。

【39】明智而审慎第使用private继承

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

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