"overriding" 非虚拟方法的官方术语

Official term for "overriding" a non-virtual method

我正在使用 this answer 中的 "simulate covariance by casting" 技术。但我想用注释标记 Derived::Clone,清楚地表明基础 class 中也存在具有相同签名和名称的方法。我写过:

/*shadow*/ shared_ptr<Derived> Clone() const

但我不确定 "shadow" 一词在这种情况下是否会得到普遍理解。它似乎更常用于局部变量遮蔽其他局部变量。

这种东西的官方说法是什么?

术语阴影 广泛用于与范围相关的事情。

相似:

void foo(int x) {
   int x = 0; // << Shadows parameter x
}

没有"official"(我找不到当前标准草案文档中使用的术语)但对IMO非常了解。

标准 (N4141) 为此使用术语 "hiding",例如

Note: The names declared in V and the left-hand instance of W are hidden by those in B, but the names declared in the right-hand instance of W are not hidden at all. — end note

10.2/11

然而,隐藏是一个广泛使用的术语,用于各种名称隐藏,因此在评论中使用它是完全可以的。

我在编程语言中遇到了两个用于描述这种行为的术语 - 隐藏遮蔽。我个人通常说一些函数隐藏另一个函数,一些变量shadows另一个变量

顺便说一句。维基百科有一篇名为 Variable shadowing.

的文章

我也听说过名称屏蔽这个词,但不如隐藏隐藏[=24]那么频繁=].