"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]那么频繁=].
我正在使用 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 ofW
are hidden by those inB
, but the names declared in the right-hand instance ofW
are not hidden at all. — end note
10.2/11
然而,隐藏是一个广泛使用的术语,用于各种名称隐藏,因此在评论中使用它是完全可以的。
我在编程语言中遇到了两个用于描述这种行为的术语 - 隐藏 和 遮蔽。我个人通常说一些函数隐藏另一个函数,一些变量shadows另一个变量
顺便说一句。维基百科有一篇名为 Variable shadowing.
的文章我也听说过名称屏蔽这个词,但不如隐藏或隐藏[=24]那么频繁=].