new期间的异常

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

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

 

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

 

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

 

posted @ 2017-02-28 18:24  blcblc  阅读(256)  评论(0编辑  收藏  举报