c++ - 为什么新操作员和删除操作员签名与所有其他操作员不同
问题描述
新运算符的签名是:
void* operator new(size_t count)
单词“operator”和单词“new”之间有一个空格。这是:
与所有其他运算符签名不同(除了 new、delete 和它们的数组对应项)。例如:
T& operator=(const T& other)
不符合不允许空格的 C++ 函数名称规则。
我假设在这种情况下“运算符”是一个关键字......但是如果这是正确的,为什么在所有其他运算符函数签名中都不是这种情况?
有不一致的解释吗?
解决方案
void* operatornew(size_t count)
是一个名为的函数operatornew
,它接受 asize_t
并返回 a void*
。
不需要空格operator=
和大多数其他运算符的原因是这些符号在名称中无效,因此operator=
不需要空格。
推荐阅读
- java - 保护 Java 应用程序免受 SQL 注入
- python-3.x - 仅针对某些文件中的行过滤 Python 日志
- android - 如何使用设置的全跨度或动态 GridCells 数来实现 LazyVerticalGrid。在 jetpack compose 中固定?
- python - 我的代码正在运行但在 15 分钟后停止如何让它无限运行?
- php - 具有不同行和列的 JSON 到 HTML 表
- microservices - 如何在微服务架构中实现可变性?
- c# - 在 .resx 中插入 .png 作为位图而不是字节 []
- java - 如何更改 JFrame 的颜色?
- swift - 我无法设置固定条宽核心图条形图
- angular - 角 12 | 未将其添加到模块中的声明而呈现的组件