Diciamo Ho le seguenti classi:Chiamare un metodo sovrascritto dalla classe base
class A {
public:
virtual void foo() {
bar();
}
protected:
virtual void bar() {
// Do stuff
}
}
class B : public A {
protected:
virtual void bar() {
// Do other stuff
}
}
Se ho un 'istanza di B e chiamare il metodo foo, quale metodo bar sarebbe ottenere chiamato? E questo compilatore è specifico?
Grazie
Si noti che questo comportamento non è il caso all'interno del costruttore e del distruttore di base. Lì chiamerà l'implementazione di base. Discussione: http://www.cplusplus.com/forum/general/109477/ –