浅谈c++placement new
来源:互联网 发布:截取串口数据代码 编辑:程序博客网 时间:2024/05/17 18:01
placement new 存在于头文件<new>,或者<new.h>中。
有些时候,你会想在指定的内存上面构造对象。这时就会用到placement new。它是一个特殊版本的operator new。
例如:
class Widget
{
Widget(int Widgetsize);
...
};
Widget* constructWidgetInBuffer(void* buffer,int Widgetsize)
{
return new (buffer) Widget (Widgetsize);
}
new 有两个参数,一个buffer,一个Widgetsize。其中buffer是指定的那块内存。
这也是new operator的用法之一。被调用的operator new 除了接受一个size_t参数之外,还要接受一个buffer,
指向一块内存。这样的operator new 就是placement new。
placement new 主要做的就是为对象找到一块内存,并返回一个指向这块内存的指针。
剩下的事情就是new operator在这块指定内存上调用构造函数初始化对象了。
阅读全文
0 0
- 浅谈c++placement new
- c++placement new
- more effect c++---placement new
- 【C++】placement new的简单介绍
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- placement new
- new placement
- “疲劳”传说 (legend.pas/c/cpp)
- 由浅入深编写SQL并使用MyBatis实现
- TeamCity 和 Nexus 的使用
- AngularJS与Angular的区别
- hive支持sql大全(7-8:字符串函数 /集合统计函数)
- 浅谈c++placement new
- Android依赖库版本冲突的一个解决方法
- Android-DeviceUtil及状态栏高度获取
- 使用0x3f3f3f3f表示无穷大
- java中的包装类型转换
- ViewPager+Fragment 懒加载学习笔记(一)
- oracle优化建议
- The import org.springframework.context.support.ClassPathXmlApplicationContext cannot be resolved
- 记录最近遇到的坑