关于转型
我在看effective c++ 3 editon 时,其中第27条 :尽量少做转型动作这一节中,写到:
class Window
{
public:
virtual void onResize() {...}
};
class SpecialWindow: public Window
{
public:
virtual void onResize()
{
static_cast <Window> (*this).onResize();
}
};
static_cast <Window> (*this).onResize()调用的是建立的一个“*this对象之base class成分”的暂时副本身上的onResize
不太了解static_cast是如何实现的,它是生成一个暂时副本么,而不是直接将原来的对象转型么,不懂,请指教
[解决办法]
从来不存在“直接将原来的对象转型”
[解决办法]
不一定要“临时变量”,可以直接用寄存器。
[解决办法]
不需要懂,知道结论就可以了:从来不存在“直接将原来的对象转型”
[解决办法]
切割对象,把其中的 Window子对象部分取出来,
生成一个暂时副本 ......