小编Shi*_*ain的帖子

为什么我们实际上需要运行时多态性?

我试图理解多态性,但我不明白如果静态多态性可以很好地调用类的成员,为什么我们需要运行时多态性。

就像,假设这是一个问题。

#include <bits/stdc++.h>
using namespace std;
class base{
    public:
        virtual void fun(){
            cout<<"base called"<<endl;
        }
};
class derived:public base{
    public:
        void fun(){
            cout<<"derived called"<<endl;
        }
};
int main() {

    base b,*b1;
    derived d;
    b1 = &d;
    b1->fun();
    // b.fun();
    // d.fun();
}
Run Code Online (Sandbox Code Playgroud)

假设这是我的代码,我想访问派生类或基类的函数,我可以通过简单地创建该类的对象来做到这一点,所以如果没有问题,那么为什么我们尝试使用引用来调用该对象(运行时多态性)。有人可以解释运行时多态性的实际需要吗?或者如果可能的话,您可以通过使用任何现实生活场景来解释它吗?

c++ oop polymorphism

6
推荐指数
1
解决办法
3877
查看次数

标签 统计

c++ ×1

oop ×1

polymorphism ×1