考虑一个Base
具有虚函数的类和一个Derived
来自 Base 的实现虚函数的类,但几乎没有额外的私有成员。我们可以安全地将指针向下转换Base*
为Derived*
指针吗?
Base* base = new Derived();
Derived* derived = dynamic_cast<Derived*>(base); // Is this valid?
如果派生类除了在基类中实现虚函数之外还包含一个额外的私有成员 int _derivedNum 怎么办?向下转换基类指针后,我还能使用derived->_derivedNum 访问派生类的私有成员吗?