Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299171
  • 博文数量: 148
  • 博客积分: 4365
  • 博客等级: 上校
  • 技术积分: 1566
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-05 21:38
文章分类
文章存档

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

分类: C/C++

2013-01-11 18:52:54

明智审慎使用private继承,通常只在表示“实现”关系时,相当于表现出C++中没有的interface的作用。

private继承后,需要在派生类中重声明(redeclare)所需的对外接口(为了实现,using一下或使用::域作用符调用基类版本)。

再强调:public继承,表示派生类 is-a 基类,可以替换基类出现的地方(里氏替换)。

空白基类最优化: 空的类取sizeof,值是1,但是由其派生的类,这个“垫补”的1可以减掉。

点击(此处)折叠或打开

  1. class a{
  2. };

  3. class b:public a{
  4.     int t2;
  5. };
类a的sizeof是1,类b继承a,加入一个int成员,sizeof是4(32位机)。

没有垫补的1,这个对象就不占据内存,创建时就无法为其分配内存空间了。


阅读(665) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~