gpt4 book ai didi

C++:如果我重载 new 运算符,我是否也必须重载 delete 运算符?

转载 作者:可可西里 更新时间:2023-11-01 16:37:57 28 4
gpt4 key购买 nike

我正在阅读关于 SO 和 answers 中的一个问题,它被提到为:

If no unambiguous matching deallocation function can be found, propagating the exception does not cause the object’s memory to be freed.

因此,如果我只是重载我的 new 运算符而不是 delete 运算符,是否会创建和调用任何默认的 delete 运算符;或者,我是否还必须显式编写 delete 运算符。

最佳答案

这意味着如果你用额外的参数重载 operator new,而不是用额外的参数重载相应的 delete,如果在构造函数中发生异常,则不会调用 delete 运算符。另一方面,如果你重载基本的 new(没有额外的参数),并且发生异常,将调用没有额外参数的 delete,如果你没有重载它,这将是默认的操作符 delete。

关于C++:如果我重载 new 运算符,我是否也必须重载 delete 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52158193/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com