Bootstrap

new的三种用法

new的三种用法

第一种 :创建一个新对象

Test* p= new Test(10);

这里的new的用法是创建一个新的Test型的对象,该用法一共有三个步骤:

  • 1.申请一个空间
  • 2.在申请的空间当中构造一个对象,并将该对象放置到空间中
  • 3.将空间的地址返回

第二种:申请空间

Test* s=(Test*)::operator new(sizeof(Test));

operator new的作用同malloc的作用相同,都是申请一个空间,区别在于,返回值不同;当空间不足时malloc会返回一个“nullptr”,operator new会返回一个throw_bad的异常。

第三种:定位new

new(s) Test(10);

该用法与构造new十分相似,是在已经确定的空间当中,构造一个对象,并将该对象放置到声明的空间当中。

;