virtual function const vs virtual function non-const
class Base
{
public:
virtual void func() const
{
cout<<"This is constant base "<<endl;
}
};
class Derived : public Base
{
public:
virtual void func()
{
cout<<"This is non constant derived "<<endl;
}
};
int main()
{
Base *d = new Derived();
d->func();
delete d;
return 0;
}
¿Por qué la salida imprime "Esta es una base constante". Sin embargo, si elimino const en la versión base de func (), imprime "Esto no se deriva constantemente"
d-> func () debería llamar a la versión Derivada correctamente, incluso cuando la Base func () es constante