基類指針指向派生類對象
3種情況:
- 一般只能調用基類的函數
- 調用的函數,在基類中函數如果是虛函數,調用繼承類的函數
- 調用的函數,在基類中函數如果只在繼承類中有,報錯
然後來看一組代碼實例:
#include <iostream>
using namespace std;
class A {
public:
void f() { cout << "A::f()" << endl; }
virtual void g() { cout << "A::g()" << endl; }
};
class B :public A {
public:
void f() { cout << "B::f()" << endl; }
void g() { cout << "B::g()" << endl; }
};
int main() {
A a;
B b;
A*pa = &b;//基類指針指向繼承類
pa->f();//基類中有的只能指向基類
pa->g();//基類中是虛函數,只能調用繼承類函數
}
結果如下
B::f()
A::g()