当前位置: 首页 > news >正文

C++中的new操作符:new operator、operator new、placement new

new操作符(new operator)

当你写这种代码时:
string *ps = new string("Memory Management");
你使用的new是new操作符。

new操作符的动作包含两部分:

  1. 在堆上为创建的对象申请内存
  2. 调用对象的构造函数进行初始化

operator new

当你写这种代码时:
void *rawMemory = operator new(sizeof(string));
你使用的new是operator new。

operator new的职责仅仅是分配内存,它不会调用对象的构造函数进行初始化

operator new的函数声明一般如下:

void * operator new(size_t size);

  • 返回值类型void*,未初始化的内存
  • 參数size_t确定分配多少内存
  • 你能添加额外的參数重载函数operator new,可是第一个參数类型必须是size_t。
    -(有关operator new很多其它的信息參见Effective C++ 条款8至条款10。)

placement new

当你写这种代码时:
Widget *p = new (buffer) Widget(widgetSize);
你使用的new是placement new。

placement new的职责是在一块未初始化的内存上,调用对象的构造函数

以下的样例是placement new怎样使用:

点击查看代码
class Widget {public:Widget(int widgetSize);...
};Widget * constructWidgetInBuffer(void *buffer,int widgetSize)
{return new (buffer) Widget(widgetSize);
}

new (buffer) Widget(widgetSize)的职责是在buffer指向的内存上,调用Widget的构造函数

小结

  • 你想在堆上建立一个对象,应该用new操作符。它既分配内存又为对象调用构造函数。
  • 假设你只想分配内存,就应该调用operator new函数;它不会调用构造函数。
  • 假设你想定制自己的在堆对象被建立时的内存分配过程,你应该写你自己的operator new函数。
  • 假设你想在一块已经获得指针的内存里建立一个对象。应该用placement new。

參考:https://www.cnblogs.com/slgkaifa/p/6887887.html

http://www.hskmm.com/?act=detail&tid=32800

相关文章:

  • JavaBean知识总结及范例
  • 2025 年家装管道生产厂家最新推荐排行榜:覆盖云南昆明贵州贵阳四川成都重庆,精选优质 PPR/PVC 管道品牌,解决选购难题
  • 同一设备多账号登录,如何避免消息推送“串门”?
  • 强合规行业DevOps选型:告别工具拼凑,找到真正适配的国产化DevOps方案
  • 大疆无人机RTMP推流至LiveNVR实现web页面实时播放与录像回放,并可以转GB28181协议级联推送给上级监控视频管理平台
  • Character Animator 2025下载安装教程:2D角色动画软件零基础入门,附最新下载安装教程及激活方法
  • 2025年彩钢瓦/镀锌板/折弯件/C型钢/Z型钢/压型瓦/楼承板/次檩条厂家推荐排行榜,专业钢结构安装与定制加工实力解析
  • 2025 年最新金相厂家最新推荐排行榜:涵盖金相磨抛机 / 切割机 / 显微镜 / 抛光机 / 预磨机设备,助力企业精准选择优质品牌
  • 武汉图核科技
  • 完整教程:display ospf peer 概念及题目
  • 2025中国开发者必看:主流代码托管平台本土化能力深度测评
  • 开源数据采集工具 logstash(收集日志)/telegraf(收集指标)
  • 2025年粉末冶金制品厂家推荐排行榜,粉末冶金零件,金属注射成形,结构件,齿轮,轴承公司最新精选
  • 2025 年升降平台车厂家最新推荐口碑排行榜:覆盖多类型产品,聚焦实力厂家,为企业选购提供权威参考剪叉式/手动液压/电动液压升降平台车厂家推荐
  • 供应商图纸协同是什么?主要有哪几个核心原则?
  • 2025 年堆高车厂家最新推荐排行榜:聚焦专利技术、华为等大牌合作案例及国内优质品牌解析手动液压/手动液压/卷筒/油桶堆高车厂家推荐
  • 2025 年最新推荐!编码器源头厂家排行榜:聚焦无磁 / 光学 / 脉冲等多类型产品,精选行业优质企业
  • Excelize 开源基础库发布 2.10.0 版本更新
  • 高效搞定outlook大附件怎么发送的方法与技巧
  • 2025年点胶机厂家权威推荐榜:精密点胶设备、自动化点胶系统、桌面点胶机源头厂家综合实力解析
  • HAP 签名提取:从定位到解析的实操指南
  • 深入解析:Redis List 类型全解析
  • 内外网文件传输工具有哪些?最强合集在这里
  • 汇川伺服常用参
  • IC 测试革新
  • 2025 年自动售卖机厂家最新推荐榜单:智能 / 无人 / 文创 / 盲盒 / 食品全品类优选,高性价比品牌选购指南
  • 使用SecureCRT从linux上传下载文件方法
  • 2025年保洁公司权威推荐榜:苏州/昆山驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁全方位解析
  • Content Hub接口文档
  • 2025年防水织带/鞋垫/编织包/松紧带/鞋带/织带/飞织鞋面厂家最新推荐榜单:专业工艺与创新设计深度解析