作者Arton0306 (Ar藤)
看板C_and_CPP
標題[問題] 繼承與結構
時間Fri May 6 23:23:01 2011
我有一個base class叫做PlayableFile class
有兩個class public繼承他
分別是
Song class
Video class
然後我有個陣列 其元素為PlayableFile*
這個陣列中存有Song* Video*
我可以由PlayableFile的mItemType知道它是哪一個
但當我在用到Song特有的getArtistName()
我還是要做一個轉型
(static_cast<Song*>(myFile[n]))->getArtistName()
但書上說當用到static_cast的時候可能就是結構不太好的時候
請問是否有更好的方式?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.140.149
推 Ebergies:你可以把 song/video 特有的資訊再包成 IMetaData 05/06 23:34
推 purpose:通常是用 PlayableFile * 去指實體的 Song、Vidoe 物件 05/06 23:41
→ purpose:到時候判斷完該指標是Song再轉換指標 05/06 23:41