C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 通常情況下使用 typeid 比較兩條表達(dá)式的類型是否相同或者比較一條表達(dá)式的類型是否與指定的類型相同
Derived *dp = new Derived; Base *bp = dp; // 兩個(gè)指針都指向Derived對象// 在運(yùn)行時(shí)比較兩個(gè)對象的類型 if (typeid(*bp) == type(*dp)) {// bp和dp指向通醫(yī)藥類型對象 }-對數(shù)組a執(zhí)行typeid(a)。所得的結(jié)果是數(shù)組類型而非指針類型。
1.1 typeid作用于對象,因此我們使用*bp而不是bp。
if (typeid(*bp) == typeid(Derived)) {//@ bp 實(shí)際指向 Derived 對象 }1.2 typeid 作用于指針時(shí),返回的結(jié)果是該指針的靜態(tài)編譯時(shí)類型
// 下面檢查永遠(yuǎn)失敗: bp類型是指向Base的指針 if (typeid(bp) == typeid(Derived)) {// 此處代碼永遠(yuǎn)不會(huì)執(zhí)行 }- 如果 p 是一個(gè)空指針, 則 typeid( *p)將拋出一個(gè)名為 bad_typeid的異常。
總結(jié)
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha