perchè questo codice
Codice:
#include <iostream>
using namespace std;
class B {
protected: int b;
public:
void f1() {cout << 'B' << endl;}
} ;
class D: public B {
public:
virtual void f1(){ cout << 'D' << endl;}
};
int main(){
D* pd = new D;
pd->f1();
system("PAUSE");
return 0;
}
mi dà D in uscita??? cioè se nella classe base ho una funzione non virtuale e nella derivata ho una ridefinizione della stessa però come virtuale, dato un puntatore del tipo della classe derivata, viene scelta quest'ultima dal compilatore? se sì, perchè???? scusate ma è da 2 mesi che imparo il c e sta cosa proprio non mi è chiara...

quasi dimenticavo: grazie a chi sarà così gentile da rispondermi...