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 (将#修改为@)