サブクラス化とメソッドの使用に問題があります。
クラスのインスタンスを作成し、B
それをへのポインタとして保存しますA
。しかし、ポインタを使用してオーバーロードされたメソッドを呼び出すと、出力は「B」ではなく「A」になります。なんで?
これは他の言語でも機能しますが、何が間違っていますか?
#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;
}