我在这个网站上读了一些其他的帖子,它们提到dynamic_cast和static_cast都可以安全地向上转换。A * ptr = new B ();
仍然有效,并且行为类似于类型A的对象。(我也来自Java背景,在那里向上转换是不必要的。我还在这个网站上读到,向下转换不需要dynamic_cast [问题是""]。同样,我认为只有当你向下转换时才真正<e
由于重叠实例,Vehicle的以下实例是非法的:data Ferrari = Ferrari
accelerate :: cclass Vehicle v where go = accelerate
instance我没有必要将Car、Plane或Vehicle定义为clases,也不需要定义Ford、Ferrari