gpt4 book ai didi

c++ - 是否应该经常检查新运算符(operator)是否工作?

转载 作者:IT老高 更新时间:2023-10-28 21:36:04 26 4
gpt4 key购买 nike

我有两个关于 new 运算符的问题:

  1. new 算子分配内存会失败吗?

  2. 是否应该在每次使用 new 后进行一次测试,是否真的创建了一个对象?

最佳答案

operator new throws a std::bad_alloc exception on failure ,除非您明确使用 nothrow 版本。因此,不要检查返回值:如果在构造函数调用之后到达下一行,则可以放心地假设构造函数成功。

但是,请务必将代码的适当范围分支包装在 try-catch block 中:通常不是直接围绕新调用,而是在某处您可以取消依赖于分配的所有内容,仅此而已.

更新:但另请参阅下面 Jonathan Leffler 关于 new 的 nothrow 变体的评论。

关于c++ - 是否应该经常检查新运算符(operator)是否工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197732/

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