new期间的异常

new包含两步,调用operator new申请空间,以及调用构造函数。

如果第一步结束之后,第二步发生异常,需要归还第一步的空间。

编译器帮我们做了这件事情,并且会调用对应的delete。

另外 new 会调用类定义的 operator new,而::new 会调用默认的operator new.

原文地址:https://www.cnblogs.com/charlesblc/p/6480226.html