雜七雜八
最近在學(xué)習(xí)中,看到了一段很詭異的代碼。
對(duì)此很是疑惑,為什么兩個(gè)完全不同的類(lèi)型可以無(wú)差別的轉(zhuǎn)換。猜測(cè)1:認(rèn)為IDispatch重載了賦值操作符。0.1秒的時(shí)間否定。他只是一個(gè)接口,定義很明確的4的方法。不可能。由于不相信,還特意去看了一下他的接口定義。徹底死心。猜測(cè)2.CComptr<IDispatch>重載了賦值操作符。但是想來(lái)想去應(yīng)該和他的重載沒(méi)有關(guān)系,因?yàn)檫@個(gè)操作在他的左邊,和他的賦值操作符全然沒(méi)有關(guān)系。不信之,進(jìn)去看了一下,并且把重載給注釋掉,結(jié)果還是能編譯成功,徹底確信不是賦值的作用。真相:終于拿出殺手锏,F(xiàn)11,單步,哈哈,進(jìn)去發(fā)現(xiàn)原來(lái)有:
這段代碼。哈哈。。問(wèn)了大牛知道是重載強(qiáng)制轉(zhuǎn)換。哈哈。縱欲知道原因了。。。自己也模仿寫(xiě)了一下:
編譯成功,爽。。。。
posted on 2009-07-28 20:03 shongbee2 閱讀(1118) 評(píng)論(2) 編輯 收藏 引用 所屬分類(lèi): c/c++
的確詭異,原來(lái)類(lèi)型轉(zhuǎn)換的重載有點(diǎn)特殊,學(xué)習(xí)了!! 回復(fù) 更多評(píng)論
@Sunshine Alike 哈哈,我也是剛知道的。。 回復(fù) 更多評(píng)論
Powered by: C++博客 Copyright © shongbee2