关于转型的一个重要事实是你可能因此写出许多是是而非的代码,下面就是这样的一个实例:
class Window
{
public:
virtual void onResize() { }
}
class SpecialWindow : public Window
{
public:
virtual onResize() {
static_cast<Window>(*this).onResize();
}
}
static_cast<Window>(*this).onResize();
上面这条语句将*this转型成Window,对函数onResize的调用因此调用了Window::onResize。但其调用的并不是当前对象上的函数,而是稍早转型动作所创建的"*this对象之base class成分"的暂时副本上的OnResize!