questo è un esempio preso da Effective C++ 3ed, si dice che se lo static_cast
viene utilizzato in questo modo, viene copiata la parte di base dell'oggetto e la chiamata viene invocata da quella parte. Volevo capire cosa sta succedendo sotto il cofano, qualcuno aiuterà?Domanda sull'utilizzo di static_cast sul puntatore "this" in un oggetto derivato sulla classe 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
};
vorrei rimarcare dato che 'static_cast (* this)' crea una copia, questo codice è molto probabile ** NON produce il risultato desiderato **. –
gatopeich