[問題] 繼承與結構

看板C_and_CPP (C/C++)作者 (Ar藤)時間15年前 (2011/05/06 23:23), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串1/2 (看更多)
我有一個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

05/06 23:34, , 1F
你可以把 song/video 特有的資訊再包成 IMetaData
05/06 23:34, 1F

05/06 23:41, , 2F
通常是用 PlayableFile * 去指實體的 Song、Vidoe 物件
05/06 23:41, 2F

05/06 23:41, , 3F
到時候判斷完該指標是Song再轉換指標
05/06 23:41, 3F
文章代碼(AID): #1Dn19PWM (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Dn19PWM (C_and_CPP)