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