读书人

关于转型解决思路

发布时间: 2012-04-13 13:50:24 作者: rapoo

关于转型
我在看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子对象部分取出来,
生成一个暂时副本 ......

读书人网 >C++

热点推荐