Ich habe Probleme mit Unterklassen und Methoden.Warum die Unterklassenmethode nicht aufgerufen wird?
Ich erstelle eine Instanz der Klasse B
und speichern Sie es als Zeiger auf A
. Aber wenn ich den Zeiger verwende, um die überladene Methode aufzurufen, ist die Ausgabe "A" nicht "B". Warum?
Das funktioniert in anderen Sprachen, was mache ich falsch?
#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;
}
erklären virtuelle A des 'f()' Methode. um das Binging zur Laufzeit zu verschieben. Sonst statische binging für –
ja, weil es nicht virtuell ist –