首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于转型解决思路

2012-04-13 
关于转型我在看effectivec++3editon时,其中第27条:尽量少做转型动作这一节中,写到:classWindow{public:vir

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

热点排行