Possible Duplicate:
Downcasting using the Static_cast in C++




我非常困惑我们何时需要将基础对象的指针转换为派生类的指针?
有人可以帮我举个例子吗?

最佳答案

您说的是哪种转换?

如果是向下转换(或动态转换,是同一种类型,但已在运行时进行了验证),则可以执行强制指定的类型来强制类型检查器不检查特定类型。

这意味着这可能会破坏您的代码内部,在该特定指令中缺少保证的类型安全性,但有时是必须的,即使好的设计永远都不需要先验。

由于没有强制转换,即使您确定指向基类的指针包含派生类的指针也不会被允许调用派生类的任何方法(但编译器无法对其进行验证) )。

关于c++ - 为什么C++允许将指向基础对象的指针转换为派生类的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13486010/

10-11 21:28