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