gpt4 book ai didi

c++ - operator new[] 定义分解

转载 作者:行者123 更新时间:2023-11-30 00:56:28 30 4
gpt4 key购买 nike

我很难消化这个语法:

void* operator new[](std::size_t, const std::nothrow_t&) throw();

虽然这仍然是可以理解的:

void* operator new (std::size_t size, const std::nothrow_t& nothrow_constant) throw();

问题:

  1. 我以为new 和下标[] 是不同的运算符。我们如何在一个定义中组合两个运算符以重载?

  2. 还有 nowthrow。以下调用对我来说没有意义(关于函数的签名)。

     int * p2 = new (nothrow) int;

如果有人可以引用 bjarne stroustrup 书中的相关主题,那就太好了,但这不是硬性要求。

更新:请尝试回答这两个问题:)

最佳答案

new[] 和 [] 是两个完全不同的运算符。

new[]是数组的分配运算符,[]是数组的下标访问运算符。

new[] 是它自己的运算符,它不仅仅是“new”分配器与“[]”下标运算符的组合。

关于c++ - operator new[] 定义分解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050189/

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