第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++類型轉(zhuǎn)換

C++類型轉(zhuǎn)換

C++
DIEA 2018-11-11 12:12:28
class Point3d{public:    virtual ~Point3d(){};    Point3d(){x=1;y=0;z=0;};private:    float x,y,z;};Point3d* p3=new Point3d;float* pf=reinterpret_cast<float*>(p3);我們都知道不能這么轉(zhuǎn)換,但是為什么不能呢?父類和子類的指針可以做類型轉(zhuǎn)換,那么他們?yōu)槭裁纯梢赞D(zhuǎn)換呢?類型轉(zhuǎn)換的本質(zhì)什么呢?為什么可以或者不可以?這個和c++對象模型如何結合?
查看完整描述

3 回答

?
慕桂英4014372

TA貢獻1871條經(jīng)驗 獲得超13個贊

你得先明白 reinterpret_cast 、static_cast,dynmic_cast,const_cast 這幾個關鍵字的作用和機制。

 

Point3d* p3=new Point3d;
float* pf=(float*)(p3);

你會發(fā)現(xiàn),它是可以轉(zhuǎn)換的,沒有語法錯誤,也沒有運行時錯誤。


查看完整回答
反對 回復 2018-11-15
?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

就是讓編譯器把原有類型看成新的類型去處理。就這么簡單,比如上例。p3對應的地址處本來是個類Point3d,占用內(nèi)存4*(1+3)個字節(jié),如果把p3強制轉(zhuǎn)換成float型的pf,那么編譯器會把該地址(pf指向的地址)當作float型對待,大小是4字節(jié)。僅此而已。


查看完整回答
反對 回復 2018-11-15
  • 3 回答
  • 0 關注
  • 617 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號