8 placement new的使用
从两行代码说开去
阅读下面的两行代码,说说new的用法。
int a = 66;
new (&a) int(88);
相信不少程序员会对上面new的用法表示疑惑:第二行的语句是不是有语法错误。使用new分配内存,标准的写法是:int *pData = new int,上面的写法是什么意思呢?实际上,这就是placement new,是重载operator new的一个全局版本,并且不能被自定义的版本所替代。
考虑下面的代码:
class CMyJob
{
public:CMyJob(){printf("my job constructor\n");}~CMyJob(){printf("my job destructor\n");}void Print(){printf("my job print\n");}
};CMyJob *pJob = new CMyJob();
上面的new关键字实际上执行了以下三个步骤:
1、调用operator new分配内存空间。
2、在第1步返回的内存空间地址上调用CMyJob的构造函数生成对象。
3、返回对象的指针,赋值给pJob。
其中,前两个步骤一般由C++内部实现,我们无需额外关
8 placement new的使用相关推荐
- Complex Instance Placement
转自: https://specs.openstack.org/openstack/openstack-user-stories/user-stories/proposed/complex-insta ...
- Placement new
new 操作一般可以分为两个过程:1为申请内存空间 2为调用类型的构造函数进行构造 placement new 调用类型的构造函数对已存在的内存进行构造 1 #include<new.h> ...
- 二分图最大匹配(匈牙利算法) POJ 3020 Antenna Placement
题目传送门 1 /* 2 题意:*的点占据后能顺带占据四个方向的一个*,问最少要占据多少个 3 匈牙利算法:按坐标奇偶性把*分为两个集合,那么除了匹配的其中一方是顺带占据外,其他都要占据 4 */ 5 ...
- OpenStack Placement Project(Rocky to Train)
目录 文章目录 目录 前言 背景 Placement 基本概念 数据模型 指令行 Placement Web Application 的实现与分析 Placement 在 Nova 中的应用 Get ...
- OpenStack Nova Placement API 统一资源管理接口的未来
目录 目录 Placement API 为何称之为 "未来" 操作对象基本概念 数据库操作样例 Placement API 在创建虚拟机时的调度过程 Placement REST ...
- Placement new的用法及用途
什么是placement new? 所谓placement new就是在用户指定的内存位置上构建新的对象,这个构建过程不需要额外分配内存,只需要调用对象的构造函数即可. 举例来说: class foo ...
- pymysql安装_openstack stein安装placement
openstack stein install placement 安装组件: placement 注:安装服务均遵循以下步骤: mariadb创库授权 keystone创建角色并关联 keyston ...
- CNCF 沙箱项目 OCM Placement 多集群调度指南
作者: 邱见|红帽资深软件工程师,Open Cluster Management (OCM) 社区发起人,负责人 郝青|红帽高级软件工程师,Open Cluster Management (OC ...
- placement new(转)
今天看STL源码遇到一个问题: template <class _T1, class _T2> inline void _Construct(_T1* __p, const _T2& ...
- placement new 操作符
placement new操作符能够在分配内存时指定内存位置.下面的程序使用了placement new操作符和常规new操作符给对象分配内存. // placenew.cpp -- new, pla ...
最新文章
- linux/usr/src/kernels 目录下没有内核源码 解决方法
- ThreadLocal的设计与实现
- 【推荐】LSI(latent semantic indexing) 完美教程
- System.img是如何打包的
- 记下MD5验签可能出现的问题
- html css 画五角星,纯 CSS3 绘制图形(心形、五角星、六边形等)
- hihocoder-Week243-hiho字符串
- influxdb mysql对比_influxdb基础入门
- iphone 微信下浏览器中数字去除下划线
- oracle获取用户名,Oracle 用户名详解
- 再问:支付宝即时到账集成接口!
- Adobe Photoshop CC已停止工作重装显卡驱动解决方法
- 【React】facebook最新状态管理库Recoil
- [ 电子商务 ] 解读 Ad Network、Ad Exchange、DSP、SSP、RTB 和DMP 是什么?
- 01_测试基础知识---微信公众号测试点
- 锤子发新机了,就在2020年10月21日晚,锤子发版新机坚果R2和配套的TNT扩展本
- 用citespace对知网文献的关键词分析结果很少如何解决?
- SDNU QLU 2022.10.15 新生赛
- $route.push()多次点击跳转报错问题
- 机器学习 06:SMO 算法