pas*_*sha 9 c++ new-operator dynamic-memory-allocation delete-operator
我正在阅读关于SO的问题,在其中一个答案中,它被提到:
如果找不到明确的匹配解除分配函数,则传播异常不会导致释放对象的内存.
所以,如果我只是重载我的new运算符而不是delete运算符,那么是否delete会创建并调用任何默认运算符; 或者,我是否还必须delete明确地编写运算符.
这意味着如果使用额外参数重载operator new,而不使用额外参数重写相应的delete,如果构造函数中发生异常,则不会调用delete运算符.另一方面,如果你正在重载基本的new(没有额外的参数),并且发生异常,那么将调用不带额外参数的delete,如果你没有重载它,那将是默认的operator delete.