【发布时间】:2019-02-09 00:13:12
【问题描述】:
我正在阅读关于 SO 的问题,在其中一个 answers 中,它被提及为:
如果找不到明确匹配的解除分配函数, 传播异常不会导致对象的内存 释放。
所以,如果我只是重载 new 运算符而不是 delete 运算符,是否会创建和调用任何默认的 delete 运算符?或者,我是否还必须明确编写 delete 运算符。
【问题讨论】:
-
当你重载的
new无异常成功时?如果您有特定情况,请在您的问题中添加该代码示例并提供一些上下文。 -
这篇文章谈到了新的安置。无论您是否重载某些东西,常规运算符 new 总是有一个匹配的 delete。
-
@n.m.,我同意你所说的关于常规新的说法,新放置会调用什么?会有任何默认值还是什么都没有被调用?
-
@Azeem,当我调用 new 并且构造函数抛出异常时。
-
正如文章所说,如果找不到匹配的操作符删除,则不会调用任何内容。
标签: c++ new-operator dynamic-memory-allocation delete-operator