摘要:
在单独的语句中将new的对象放入智能指针 在单独的语句中将new的对象放入智能指针,这是为了由于其他表达式抛出异常而导致的资源泄漏。 因为C++不同于其他语言,函数参数的计算顺序很大程度上决定于编译器。 上述代码中,在 函数被调用之前参数会首先得到计算。可以认为包括三部分的过程: 执行 。 构造 。 阅读全文
摘要:
成对的使用 new/delete 和 new[]/delete[] 当你使用了一个 new 表达式,有两件事情会发生: 分配内存(通过一个被称为 operator new 的函数)。 一个或多个构造函数在这些内存上被调用。 当你使用一个 delete 表达式,有另外的两件事情会发生: 一个或多个析构 阅读全文
摘要:
在一个完美的设计中,所有的资源访问都应通过资源管理对象来进行,资源泄漏被完美地克服。然而世界是不完美的, 很多API会直接操作资源,尤其是一些C语言的API。总之,你会时不时地发现有需要直接访问资源, 所以资源管理对象需要提供对原始资源访问。获取资源的方式有两类:隐式地获取和显式地获取。 通常来讲, 阅读全文