我正在阅读有关SO的问题,在answers之一中,它被提及为:
如果找不到明确的匹配解除分配功能, 传播异常不会导致对象的记忆被 释放。
因此,如果我只是重载我的new
运算符而不是delete
运算符,则将创建并调用任何默认的delete
运算符;或者,我是否还必须显式编写delete
运算符。
答案 0 :(得分:8)
这意味着如果您用新的参数重载了new运算符,而不是使用了额外的参数重载了delete,那么如果构造函数中发生异常,则不会调用delete运算符。另一方面,如果您正在重载基本new(没有额外的参数),并且发生异常,则将调用不带额外参数的delete,如果您没有重载,它将是默认的运算符delete。 / p>