你如何測試一個對象,看它是否有某個成員?或者有沒有辦法查看某個對象是否是某個類的實例?C++如何測試一個類,看它是否有成員?
我正在使用字符圖片的繼承結構。有String_Pics,HCat_Pics,VCat_Pics和Frame_Pics。它們都來自Pic_Base。用戶使用包含指向對象的智能指針的句柄類「圖片」。每個對象都存儲一個指向基於它的圖片的指針(另一圖片的幀,水平連接的兩張圖片等)。例如:圍繞VCat-Pic的Frame-Pic,並且VCat-Pic中的兩個圖片都是圍繞String_Pics的Frame_Pics。
***************
* *
* *********** *
* * This * *
* * is * *
* *********** *
* *********** *
* * The * *
* * Example * *
* *********** *
* *
***************
Frame_Pics具有「幀字符」的數據成員,但沒有其他類。我正在寫一個函數,遞歸地更改結構中每個幀的幀字符。也許我錯過了一種方式來做到這一點,否則,我正在尋找一種方法來測試我正在處理的對象是否是Frame_Pic,因此是否意味着要嘗試更改幀字符。
我的第一個直覺是嘗試類似if (p->frame_char)
其中frame_char是Frame_Pic的數據成員之一的名稱,但我不知道如何做到這一點。
這已被問了很多次,以下是一個美麗的解決方案的例子:http://stackoverflow.com/questions/257288/is-it-possible-to-write-ac-template-to-check- for-a-functions-existence –
@AdamCadien我相信這是一個編譯時解決方案嗎?看起來像OP需要運行時。 –
是的,我的壞!感謝您指出了這一點。 –