开发者社区 问答 正文

为什么需要将Point2d类中的print函数声明为virtual?

为什么需要将Point2d类中的print函数声明为virtual?

展开
收起
花开富贵111 2024-06-19 14:11:26 51 分享 版权
1 条回答
写回答
取消 提交回答
  • 当基类中的成员函数被声明为virtual时,它允许在派生类中被重写(或称为覆盖)。这使得在运行时,当通过基类指针或引用调用该函数时,能够根据指针或引用实际指向的对象类型来确定要调用的函数,这就是动态绑定(或晚期绑定)。在上述示例中,通过将Point2d类中的print函数声明为virtual,我们可以确保当通过基类引用point(实际上是Point3d对象)调用print时,会动态地绑定到Point3d类的print函数,从而输出Point3d(0, 0, 0)。

    2024-06-19 15:06:24
    赞同 1 展开评论
问答地址: