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

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

发布时间:2013-01-11 12:14:54

不要在派生类中redefine基类中的非虚函数,埋下风险。非虚函数表派生类和基类对象共性的东西,要想体现差异化请使用虚函数。......【阅读全文】

阅读(287) | 评论(0) | 转发(0)

发布时间:2013-01-11 12:04:43

考虑虚函数意外的其它实现(模式),通常虚函数都是对外接口,借由多态,触发动态绑定。提供了几种其它思路:1.None-Virtual-Interface(NVI),提供统一的非虚函数作为接口,虚函数或private不对外呈现,具体由子类实现。就是设计模式中的template method,设计好对外的主干,枝叶则面对不同场景待定。2.由函数指针实现strategy模式,这个应用就很普遍了,无论是做入参还是类内部成员。还提到了tr1中的function和bind,以后再好好看看。......【阅读全文】

阅读(281) | 评论(0) | 转发(0)

发布时间:2013-01-11 11:29:32

区分接口继承与实现继承。pure virutal func:接口继承,强制派生类给出自己的实现。impure virutal func:接口继承,并给出默认的实现。none virtual func:接口继承+强制的实现继承。谨小慎微的对待继承设计,尽量重用,避免重复。......【阅读全文】

阅读(188) | 评论(0) | 转发(0)

发布时间:2013-01-11 09:57:53

public派生,派生类和基类之间就是一种“is-a”关系,参照里氏替换原则,基类出现的地方可用派生类替换。派生类对象也是一个基类对象,反之非也。设计好基类接口是否virtual,非virtual即接口与实现都进行派生,反之则只派生对外接口。剩下2种OO关系是 “has-a”和“is-implemented-in-term-of”,总体感觉吐糟了CPP中没有纯粹的interface,否则可以封装抽象的更好。......【阅读全文】

阅读(268) | 评论(0) | 转发(0)

发布时间:2013-01-10 21:59:38

降低文件间编译的依赖度。以防改个不对外的私有成员却导致包含其头文件的n多文件重编译。这个可是尼玛深有体会啊。。。。一种是采用pimpl(pointer to implementaion),前面哪个item大概写过。另一种用抽象类多态,只需抽象类的声明。还建议对头文件分类,有专门前向声明的,有对内部实现的等等。......【阅读全文】

阅读(358) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册