学习多态性时,您通常会看到类似这样的信息
class Base { int prv_member; virtual void fn(){} }
class Derived : Base { int more_data; virtual void fn(){} }
什么是上流或下流?是(Derived*)base_ptr;
上流还是下流?
我之所以称其为“沮丧”,是因为您正在远离基础而进入更具体的领域。其他人告诉我,这很沮丧,因为您将层次结构分解为特定的东西,而顶部是根。但是其他人似乎把它叫做我所说的。
在将基本PTR转换为派生PTR时,它称为上播还是下播?以及是否有人可以链接到官方消息来源或解释其为何如此之称比什么都伟大。
3
相关:“谁决定向下转换和向上转换的术语?” 其实...重复吗?
—
史蒂文·杰里斯
这不是重复的。这个问题问是什么,另一个问谁提出了名字。
—
罗伯特·哈维
@RobertHarvey “而且,如果有人可以链接到官方消息来源或解释其原因,那真是太棒了。” ,但也同意,这只能视为问题的一部分。
—
史蒂文·杰里斯
注意派生类中的虚拟对象。除非您再次派生Derived类,否则您不希望编写该代码。void fn(){...}就足够了。
—
2012年
JustaPro:添加
—
Nik Bougalis,2012年
virtual
是不必要的,但不会“受伤”。您能否详细说明为什么您认为在这种情况下根本不应该使用它?