Mam problem z podklasowaniem i używaniem metod.Dlaczego metoda podklasy nie jest wywoływana?
Tworzę instancję klasy B
i zapisuję ją jako wskaźnik do A
. Ale kiedy używam wskaźnika do wywołania metody przeciążonej, wyjście jest "A", a nie "B". Czemu?
Działa to w innych językach, co robię źle?
#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;
}
zadeklarować 'F A w()' sposób wirtualnego. aby odłożyć bingowanie w czasie wykonywania. W przeciwnym razie statyczne bingowanie dla –
tak, ponieważ nie jest wirtualne –