class MovablePoint : public Point {
   // MovablePoint is a subclass of Point
   // Something
}
Point * ptrP1 = new MovablePoint(11, 12, 13, 14);


如果我获得了上述格式,我是否可以在这种情况下知道我的指针ptrP1将指向类型为Point的对象还是指向类型为MovablePoint的对象?

最佳答案

您可以使用dynamic_cast

MovablePoint* pMovPoint = dynamic_cast<MovablePoint*>(ptrP1);


如果可以进行转换,它将返回一个有效的指针,否则将返回0。

关于c++ - 将子类实例替换为父类(super class)引用C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20365614/

10-09 13:25