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

Respuestas a la pregunta(6)

Su respuesta a la pregunta