我一直以为......
...并且感到困惑,因为有时人们根本不关心差异。
关于新/删除:它们是否超载或被覆盖?
一个想法:
任何更正/建议/异议? 并随意标记“hairplitting”这个问题......
答案 0 :(得分:7)
对于全局operator new
和operator delete
,它实际上既不会重载也不会覆盖。允许程序替换默认的,实现提供的定义及其自己的定义。 C ++标准说(§3.7.3/ 2):
该库提供全局分配和释放功能的默认定义。一些全局分配和释放功能是可替换的(18.4.1)。 C ++程序最多只能提供一个可替换分配或释放功能的定义。任何此类函数定义都将替换库中提供的默认版本(17.4.3.4)。
对于特定于班级的operator new
或operator delete
,运算符重载。