este es un ejemplo tomado de Efectivo C++ 3ed, dice que si se usa el static_cast
de esta manera, se copia la parte base del objeto , y la llamada se invoca desde esa parte. Quería entender qué está sucediendo bajo el capó, ¿alguien ayudará?Pregunta de usar static_cast en "este" puntero en un objeto derivado a la clase base
class Window { // base class
public:
virtual void onResize() { } // base onResize impl
};
class SpecialWindow: public Window { // derived class
public:
virtual void onResize() { // derived onResize impl;
static_cast<Window>(*this).onResize(); // cast *this to Window,
// then call its onResize;
// this doesn't work!
// do SpecialWindow-
} // specific stuff
};
Yo destacaría que dado que 'static_cast (* this)' crea una copia, es probable que este código ** NO produzca el resultado deseado **. –
gatopeich