The Blog of Nobody

Welcome! You are in the middle of nowhere. Windows Vista + Safari is recommended.
posts - 37, comments - 157, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

05 2007 档案

     摘要: class设计就是类型的设计。在定义一个新的类型之前,要确保将本条目中所有的问题考虑周全。  阅读全文

posted @ 2007-05-20 23:30 ★ROY★ 阅读(462) | 评论 (2)  编辑 |

     摘要:
优秀的接口应该易于正确使用,而不易误用。对所有的接口都应该力争做到这一点。
保持与内置数据类型有一致的行为,是使接口易于正确使用的一种可行的方法
防止错误发生的方法有:创建新的数据类型,严格限定类型的操作,约束对象的值,不要将管理资源的任务留给客户端程序员。
tr1::shared_ptr支持自定义的删除功能。这可以防止“跨DLL问题”,可以应用与自动解开互斥锁等情况。
  阅读全文

posted @ 2007-05-18 23:30 ★ROY★ 阅读(485) | 评论 (0)  编辑 |

     摘要:
在单独的语句中使用智能指针来保存由new创建的对象。如果不这样做,你的程序会在抛出异常时发生资源泄漏。
  阅读全文

posted @ 2007-05-15 23:12 ★ROY★ 阅读(716) | 评论 (89)  编辑 |

     摘要:
如果你在一个new语句中使用了[],那么你必须要在相关的delete语句中使用[]。如果你在new语句中没有使用[],那么在相关的delete语句中一定不要出现[]。
  阅读全文

posted @ 2007-05-14 22:15 ★ROY★ 阅读(603) | 评论 (0)  编辑 |

     摘要:
API通常需要访问原始资源,因此每个RAII类都应该提供一个途径来获取它所管理的资源。
访问可以通过显式转换或隐式转换来实现。一般情况下,显式转换更安全,但是隐式转换对于客户端程序员来说使用更方便。
  阅读全文

posted @ 2007-05-13 20:54 ★ROY★ 阅读(477) | 评论 (0)  编辑 |

     摘要:
复制一个RAII对象的同时也要复制其所管理的对象,所以资源管理的复制行为由RAII对象的复制行为决定。
一般的RAII类在复制时应遵循两条原则:不允许使用复制,要进行资源计数。
  阅读全文

posted @ 2007-05-11 18:40 ★ROY★ 阅读(582) | 评论 (1)  编辑 |

     摘要:
为了避免资源泄漏,可以使用RAII对象,使用构造函数获取资源,析构函数释放资源。
auto_ptr或TR1::shared_ptr是两个常用并且实用的RAII类。通常情况下TR1::shared_ptr是更好的选择,因为它的复制行为更加直观。复制一个auto_ptr将会使其重设为null。
  阅读全文

posted @ 2007-05-07 18:52 ★ROY★ 阅读(568) | 评论 (0)  编辑 |

     摘要: 要确保拷贝函数拷贝对象的所有的数据成员,及其基类的所有部分,不要有遗漏。
不要尝试去实现一个拷贝函数来供其它的拷贝函数调用。取而代之的是,把公共部分放入一个“第三方函数”中共所有拷贝函数调用。
  阅读全文

posted @ 2007-05-03 21:15 ★ROY★ 阅读(487) | 评论 (0)  编辑 |