浅谈C++的new(new expression和operator new)

浅谈C++的new(new expression和operator new)

在看《STL源码剖析》第2章时,在stl_stl_construct.h中使用new的代码如下:

defalloc.h中使用new的代码如下:

之前没有这么使用过C++中的new,于是查了一下,原来new不只是运算符(operator),还是表达式(expression)!下面的链接有详细的说明了例子,参考链接:
new expression
operator new

总结以下几点:

  • 调用new的语法区分出是expression还是operator
  • 将分配内存空间和执行初始化函数分为两步,new operator分配内存,new expression尝试执行初始化
  • new operator可以自定义重载,可以自定义new operator,new expression不能自定义
  • 在未指定::operator时,new是expression,new expression会调用new operator
打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注