我尝试理解多态性,但不理解为什么我们需要运行时多态性,如果静态多态性可以很好地调用类的成员。
比如说,假设这是一个问题。
#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();
}
假设这是我的代码,我想访问派生类或基类的函数,只需创建该类的对象即可实现,那么如果没有问题,为什么我们要尝试使用引用来调用对象(运行时多态性)?有人能解释运行时多态性的实际需要吗?如果可能的话,您能否通过使用现实生活场景来解释它?
void f(base* b) { b->fun(); }
。它调用哪个函数? - molbdnilo