我有子類和使用方法的問題。爲什麼不調用子類方法?
我創建類B
的一個實例,並將其存儲爲指向A
的指針。但是當我使用指針調用重載方法時,輸出是「A」而不是「B」。爲什麼?
這在其他語言的作品,我做錯了什麼?
#include <iostream>
using namespace std;
class A {
public:
void f() {
cout << "A";
}
};
class B : public A {
public:
void f() {
cout << "B";
}
};
int main() {
A *a = new B();
a->f();
return 0;
}
聲明的'F()'方法是虛擬的。用於在運行時延遲響應。否則靜態binging – 2013-02-18 15:09:38
是啊,因爲它不是虛擬的 – 2013-02-18 15:11:43