微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C++ 入门第 5 版:第 19 章控制内存分配

如何解决C++ 入门第 5 版:第 19 章控制内存分配

你好 C++ 入门第 19 章:控制内存分配:

operator new 和 operator delete 接口 该库定义了运算符 new 和 delete 函数的八个重载版本。前四个支持可以抛出 bad_alloc 异常的 new 版本。接下来的四个支持新的非抛出版本:

// these versions might throw an exception

void *operator new(size_t); // allocate an object
void *operator new[](size_t); // allocate an array
void *operator delete(void*) noexcept; // free an object
void *operator delete[](void*) noexcept; // free an array

// versions that promise not to throw; see § 12.1.2 (p. 460)

void *operator new(size_t,nothrow_t&) noexcept;
void *operator new[](size_t,nothrow_t&) noexcept;
void *operator delete(void*,nothrow_t&) noexcept;
void *operator delete[](void*,nothrow_t&) noexcept;

所以“前四个支持可以抛出 bad_alloc 的 new 版本 例外。接下来的四个支持不抛出版本的 new”?那些“可能抛出的 new 的前四个版本在哪里?”?有人能解释一下吗?谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。