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

Official term for "overriding" a non-virtual method

本文关键字:官方 术语 虚拟 overriding 方法      更新时间:2023-10-16

我正在使用这个答案中的"通过强制转换模拟协方差"技术。但是我想用注释标记 Derived::Clone,该注释清楚地表明基类中也存在具有相同签名和名称的方法。我曾写道:

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

但我不确定在这种情况下,"影子"一词是否会被普遍理解。它似乎更常用于隐藏其他局部变量的局部变量。

这种事情的官方术语是什么?

标准(N4141(对此使用术语"隐藏",例如

注意:V中声明的名称和W的左侧实例被B中的名称隐藏,但名称 在右侧实例中声明的W根本不隐藏。—尾注

11-10.2

但是,阴影是各种名称隐藏的广泛使用的术语,因此在评论中使用它完全没问题。

术语阴影广泛用于执行与范围相关的操作。

类似:

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

没有什么"官方">(我找不到当前标准草案文件中使用的术语(,但非常了解 IMO。

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

顺便说一句。维基百科有一篇名为"变量阴影"的文章。

我也听说过"遮蔽"这个词,但不像隐藏阴影那样经常。