operator new与对象的隐式创建
标准规定,调用名为 operator new 或 operator new[] 的函数会隐式创建对象(来源)。
它是否仅适用于 ::operator new 和 ::operator new[],还是也适用于重载版本 T::operator new 和 T::operator new[]?
解决方案
这取决于“名字”是指未限定名还是完全限定名。据 [basic.pre]/3 所述,它是未限定的:
一个名字是...
(3.3) — 一个 operator-function-id ... [或其他一些东西]
其中:
operator-function-id:
operatoroperatoroperator:是下列之一
new...
因此成员 operator new/operator new[] 也包含在其中。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。