面試官真正喜歡的是在第一眼就能看到應(yīng)聘者擅長的技能和之前的項目經(jīng)歷,而不是只有“簡歷”兩個字的封面,或者是大幅?;盏膱D標以及自己很得意的照片
《劍指Offer——名企面試官精講典型編程題》第2章讀書筆記
1)C++4個與類型轉(zhuǎn)換關(guān)鍵字,各有什么特點,使用場合。
百度后的結(jié)果:dynamic_cast,const_cast,static_cast,reintpret_cast;
dynamic_cast
表達式: dynamic_cast<type-id>(expression);運行期進行類型檢查, 驗證是否可以從 expression中萃取出 type-id 接口
const_cast
表達式: const_cast<type-id>(expression);作用: 編譯期類型檢查, 可合法地修改以const及volatile所修飾變量的值
static_cast
表達式: static_cast <type-id>(expression);作用: 編譯期類型檢查, 不允許兩個不相干的類型相互轉(zhuǎn)換
reinterpret_cast
表達式: reinterpret _cast<type-id>(expression);作用: 編譯期類型檢查, 支持對任意類型之間的相互轉(zhuǎn)換
C++ 同時提供了四種新的強制轉(zhuǎn)型形式(通常稱為新風(fēng)格的或 C++ 風(fēng)格的強制轉(zhuǎn)型):
const_cast(expression) ,dynamic_cast(expression) ,reinterpret_cast(expression) ,static_cast(expression)
每一種適用于特定的目的:
·dynamic_cast 主要用于執(zhí)行“安全的向下轉(zhuǎn)型(safe downcasting)”,也就是說,要確定一個對象是否是一個繼承體系中的一個特定類型。它是唯一不能用舊風(fēng)格語法執(zhí)行的強制轉(zhuǎn)型,也是唯一可能有重大運行時代價的強制轉(zhuǎn)型。
·static_cast 可以被用于強制隱型轉(zhuǎn)換(例如,non-const 對象轉(zhuǎn)型為 const 對象,int 轉(zhuǎn)型為 double,等等),它還可以用于很多這樣的轉(zhuǎn)換的反向轉(zhuǎn)換(例如,void* 指針轉(zhuǎn)型為有類型指針,基類指針轉(zhuǎn)型為派生類指針),但是它不能將一個 const 對象轉(zhuǎn)型為 non-const 對象(只有 const_cast 能做到),它最接近于C-style的轉(zhuǎn)換。
·const_cast 一般用于強制消除對象的常量性。它是唯一能做到這一點的 C++ 風(fēng)格的強制轉(zhuǎn)型。
·reinterpret_cast 是特意用于底層的強制轉(zhuǎn)型,導(dǎo)致實現(xiàn)依賴(implementation-dependent)(就是說,不可移植)的結(jié)果,例如,將一個指針轉(zhuǎn)型為一個整數(shù)。這樣的強制轉(zhuǎn)型在底層代碼以外應(yīng)該極為罕見。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。