typeid是C++頂用于返回指針或引用所指對象的現實類型。那么應該若何準確的利用它呢?本文將進行論述,但愿可以或許幫忙到你。
起首界說實現兩個類,他們之間是擔當的關系,可是不存在多態的特征
 然后界說子類對象,將該對象賦值給父類的引用,再挪用typeid查看變量的現實類型
 從輸出的成果看,typeid輸出的類型是父類,這是因為兩個類之間沒有多態特征的緣故
 經由過程typeid返回的現實類型與其他變量返回的現實類型進行比力,最后確定兩個變量是否是統一個類型
 從輸出成果看,沒有多態特征的兩個類,父類固然指標的目的子類的引用,可是父類的類型仍是Base
 實現下圖所示的兩個類,兩個類之間存在多態的特征
 再次界說子類對象,將該對象賦值給父類的引用,再挪用typeid的函數name查看變量的現實類型
 從輸出成果看,父類指標的目的子類的引用,父類返回的現實類型就是子類類型
 最后按照下圖紅色方框標示的代碼段來判定兩個變量是否是統一類型
 最后可以看到,父類指標的目的子類的引用,typeid返回的類型不是父類的類型
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!