Placement New 实现自Effective C++ Item4
来源:互联网 发布:雷欧mac炸奥特之星 编辑:程序博客网 时间:2024/06/01 21:56
#include <iostream>using namespace std;class EquipmentPiece{public: EquipmentPiece(int IDNumber) { this->IDNumber = IDNumber; } void PrintOut() { cout << IDNumber << endl; }private: int IDNumber;};int main(){ // 为大小为 10 的数组 分配足够的内存 // EquipmentPiece 对象; // operator new[] 函数 char *rawMemory = new char[10*sizeof(EquipmentPiece)]; // 或者void *rawMemory = operator new[](10*sizeof(EquipmentPiece)); // EquipmentPiece *bestPieces = static_cast<EquipmentPiece*>(rawMemory); // make bestPieces point to it so it can be treated as an // EquipmentPiece array EquipmentPiece *bestPieces = reinterpret_cast<EquipmentPiece*>rawMemory; // construct the EquipmentPiece objects in the memory // 使用"placement new" for (int i = 0; i < 10; ++i) new (&bestPieces[i]) EquipmentPiece(i); for (int i = 0; i < 10; ++i) bestPieces[i].PrintOut(); // 以与构造 bestPieces 对象相反的顺序 // 解构它。 for (int i = 9; i >= 0; --i) bestPieces[i].~EquipmentPiece(); // deallocate the raw memory delete[]rawMemory; return 0;}
- Placement New 实现自Effective C++ Item4
- Effective objective-C:item4:常量 vs 预处理
- 《Effective C++》读书笔记之item52:写了placement new也要写placement delete
- Effective C++:条款52 写了placement new也要写placement delete
- 《Effective C++》:条款52:写了placement new也要写placement delete
- 【Effective C++】读书笔记 条款52:写了placement new 也要写placement delete
- C++之写了placement new也要写placement delete(52)---《Effective C++》
- c++placement new
- 浅谈c++placement new
- [翻译] Effective C++, 3rd Edition, Item 52: 如果编写了 placement new,就要编写 placement delete
- more effect c++---placement new
- Effective C++ 3e----new & delete(八)条款2:写了placement new也要写placement delete
- 【C++】placement new的简单介绍
- effective C++ 条款 52:写了placement new也要写placement delete
- Effective C++ 条款 52:写了placement new也要写placement delete
- Effective C++ 52. Write placement delete if you write placement new
- placement new
- placement new
- 初始化一个NULL-terminated array of strings in C (以NULL结尾的字符串数组)
- poj1080 - Human Gene Functions
- 使用eclipse导出带有完整目录的文件
- C++判断操作系统是32位还是64位
- Android画图 Bitmap
- Placement New 实现自Effective C++ Item4
- ubuntu php5 configure 配置文件解析
- 开发的网站,在IE,firefox下浏览运行良好,但在Andriod, iPhone,iSO等手机平台上浏览该时位置发生偏移解决办法
- 教你如何获得可执行程序的执行目录、可执行程序名、可执行程序后缀(C\C++)
- struts2.1.6集成tiles2
- 好东东,大家一起分享
- Stage3D 翻译系列之一: Stage3D是如何工作的(一)(概念篇)
- Hudson Maven SVN快速搭建持续集成环境
- F#与数学(Iv) - 泛型数字代码