我看了一些这个网站上的其他帖子,它们提到dynamic_cast和static_cast对于向上转型都是安全的。
为什么需要使用它们进行向上转型呢?
例如,如果类B从A继承,则
A * ptr = new B ();
仍然有效,并且表现为 A 类型的对象。(我也来自 Java 背景,那里不需要进行向上转换的转换。
我还在这个网站上阅读到,dynamic_cast 不需要进行向下转换 [在问题 "When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?" 中]。同样地,我认为只有在进行向下转换时才真正需要转换。
我错在哪里了?