如果我可以通过派生类对象访问所有方法,为什么我需要Base *来派生类。除了运行时多态以外,还可以使用Base *。
#include <iostream>
using namespace std;
class B {
public:
virtual void fn1(void) {cout << "class B : fn one \n"; }
};
class D: public B {
public:
void fn1(void) {cout << "class D : fn one \n"; }
};
int main(void)
{
B *p = new D;
p->fn1();
}
我可以通过派生类对象调用fn1(),然后为什么要使用Base *。