文章 2017-04-22 来自:开发者社区

读书笔记 effective c++ Item 52 如果你实现了placement new,你也要实现placement delete

1. 调用普通版本的operator new抛出异常会发生什么? Placement new和placement delete不是C++动物园中最常遇到的猛兽,所以你不用担心你对它们不熟悉。当你像下面这样实现一个new表达式的时候,回忆一下Item 16和Item 17: 1 Widget *pw = new Widget;   两个函数会被调用:一个是调用operator new来分配...

文章 2017-04-21 来自:开发者社区

读书笔记 effective c++ Item 51 实现new和delete的时候要遵守约定

Item 50中解释了在什么情况下你可能想实现自己版本的operator new和operator delete,但是没有解释当你实现的时候需要遵守的约定。遵守这些规则并不是很困难,但是它们其中有一些并不直观,所以知道这些规则是什么很重要。 1. 定义operator new的约定 1.1 约定列举 我们以operator new开始。实现一个一致的operator new需要有正确的返回值,在....

文章 2017-02-21 来自:开发者社区

读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式

1. 一个错误释放内存的例子 下面的场景会有什么错? 1 std::string *stringArray = new std::string[100]; 2 3 ... 4 5 delete stringArray   一切看上去都是有序的。new匹配了一个delete。但有一些地方确实是错了。程序的行为是未定义的。至少来说,stringArray指向的100个string对象中的99...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注