C++;初级读物第5版:第19章控制内存分配 问候C++第19章:控制内存分配:

C++;初级读物第5版:第19章控制内存分配 问候C++第19章:控制内存分配:,c++,memory-management,new-operator,delete-operator,C++,Memory Management,New Operator,Delete Operator,操作员新建和操作员删除界面 该库定义了运算符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

操作员新建和操作员删除界面 该库定义了运算符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;
所以“前四个版本支持的新版本可能会抛出一个坏消息
例外。接下来的四个版本支持新版本的非压缩版本?那些“可能抛出的前四个版本的<代码>新在哪里?”?有人能解释一下吗?谢谢大家!

你误读了这句话,它指的是两组四个函数,而不是四个重载的
new
。“前四个版本的新版本可能会抛出”这句话不是从实际文本中摘取的,是错误的。@Someprogrammerdude:请解释更多。我对此感到困惑。“前四个版本的新版本可能抛出”这句话是你编造的,实际上不是从书中摘取的。书中引用的一句话是:“前四个版本支持可以抛出的新版本”。“前四个”引用了第一组四个函数,
new
delete
,用于可能引发异常的分配。@Someprogrammerdude:啊!正确的!我现在明白了,非常感谢。