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

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

发布时间:2012-12-24 10:07:57

手动new出来的对象极容易忘记使用delete释放,或者增量开发时在delete前加入了return或抛出异常,造成资源泄漏。因为一个类对象销毁时析构函数总是会调用到,所以强烈推荐使用对象来管理资源。Resource Acquisition Is Initialization (RAII) 资源获取最好就是在初始化时,也是形容此理念。最后推荐了TR1的shared_ptr和现有标准中的auto_ptr(已经被前者替代了)。......【阅读全文】

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

发布时间:2012-12-22 22:42:00

考构中注意所有数据成员的复制,有新的数据成员加入时,勿忘更新考构。考构与赋值运算符分开,前者用于创建对象,后者用于对象赋值。派生类的考构/赋值运算符中要调用基类的考构/赋值运算符。......【阅读全文】

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

发布时间:2012-12-22 21:36:53

重载的赋值运算符中必须要判断处理自赋值的情景,即自己赋值给自己。class Bitmap { ... };class Widget {  ...private:  Bitmap *pb;                                     // ptr to a heap-allocated object};Widget&Widget::operator=(const ......【阅读全文】

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

发布时间:2012-12-22 20:35:49

重载的赋值运算符返回引用类型的*this,复合运算符 += 及类似的也是如此。可以写出 X=Y=Z=17类似的代码。......【阅读全文】

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

发布时间:2012-12-21 23:10:53

构造函数和析构中不要调用虚函数。虚函数的作用就是为了派生类可以重写(redefine),实现不同的要求。在一个派生类对象的构造过程中,首先基类的部分先被构造,如果在基类构造函数调用一个虚函数,由于此时编译器只能看到基类对象,故会触发基类的版本,可能会导致预想外的场景。同理析构也是如此(可能析构更容易忽略)。基类中如果一定要有此“虚”的意味,可以通过传入参数或使用静态成员来实现。......【阅读全文】

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

登录 注册