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

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

发布时间:2013-01-10 17:59:07

避免返回handle(pointer,ref,iterator)指向对象的内部成员,破坏了对象的封装性。当此对象已经不存在或被销毁后,这个handle变为悬垂(dangling handle),增加了使用风险。一定要返回内部成分时,注意严格控制(改写)权限,严控非const接口,包括返回值的const性.......【阅读全文】

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

发布时间:2013-01-10 16:04:27

尽量少使用(强制)类型转换。特别是dynamic_cast,效率很低。如果非要转换,也请使用c++中那四个cast,而不是c中的那种风格。使用处提供封装,避免到处都是转换的(字面)代码。......【阅读全文】

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

发布时间:2013-01-08 18:28:54

提供swap接口以便于交换两个对象,中间不要抛出异常。提到了Pimpl,pointer to implementation,一种经常使用到的实现模式,减少耦合,减少由于头文件变动引发的不必要的重编译。wiki上说的挺清楚:http://en.wikibooks.org/wiki/C++_Programming/Idioms有一个Book类,由于变动,新加入了m_Title成员。其对应的Book.h肯定要修改,那么对应包含了Book.h的所有文件都需要重新编译,即使关于Book对象他们只知道print接口,这是一个内部私有成员变动,外界不应该感知,引发了不必要的重新编译。 点击(此处)折叠或打开......【阅读全文】

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

发布时间:2013-01-08 11:36:08

不要讲将所有参数都(可能)需要(隐式)转换的函数(重点应该是重载的四则运算符)声明为成员,即将他们在类外。以重载的乘法运算符为例,先将其声明在类内,因为有绑定的this指针,所以只带一个参数rhs。 点击(此处)折叠或打开class Rational {public:  Rational(int numerator = 0, // ctor is deliberately not expl           int denominator = 1);......【阅读全文】

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

发布时间:2013-01-07 15:44:42

看的不是特别明白,当需要某些更方便的接口时(连续调用几个public接口,facade?),最好用非成员非友元的函数进行封装,而不是新增可访问内部成员的成员函数,减少对封装的冲击。这中普通函数可以何类放入同一个命名空间。可参照标准库的头文件。......【阅读全文】

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

登录 注册