[問題] 多重繼承

看板C_and_CPP (C/C++)作者 (青)時間16年前 (2009/10/09 11:11), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串1/1
想請教一個多重繼承的問題 目前我有一個「祖類別」,分別給兩個「父類別」繼承,如下情況: class Base { private : int A; public : int GetA() { return A; } } class FatherA : public Base { private : int B; public : int GetB() { return B; } }; class FatherB : public Base { private : int C; public : int GetC() { return C;} }; 後來我有一個子類別要多重繼承FatherA和FatherB,如下: class Son : public FatherA, public FatherB { }; 不過這樣雖然能編譯過 在使用由Son所產生出來的物件,使用其「祖類別」的方法時 會產生ambiguous的情況,想請問這個部份該如何處理? 還請各位指導一下,謝謝 -- ▁▁ Google 女友|██████████████████▕搜尋進階搜尋 | 使用偏好 ▇▇  ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ 搜尋: ⊙所有網頁 ○中文網頁○繁體中文網頁 ○台灣的網頁 所有網頁 約有0項符合女友的查詢結果,以下是第 0項。 共費21年 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.7.157

10/09 11:16, , 1F
我有翻過前文的使用virtual的方式解決
10/09 11:16, 1F

10/09 11:16, , 2F
但是不明白這樣做的理由是什麼,還請各位指點一下
10/09 11:16, 2F

10/09 11:22, , 3F
因為他不知道你要A還是B的老爸 加virtual會把A跟B的老爸
10/09 11:22, 3F

10/09 11:23, , 4F
變同一個人
10/09 11:23, 4F

10/09 11:25, , 5F
原來如此,也只有在相同父類別時可以用這個方式解決
10/09 11:25, 5F

10/09 11:26, , 6F
不同父類別,也有可能具有相同函數名稱不是嗎?
10/09 11:26, 6F

10/09 11:26, , 7F
那這樣的話又應該如何解決呢?
10/09 11:26, 7F

10/09 11:26, , 8F
還是說父類別不同,就不會存在這樣的問題了?
10/09 11:26, 8F

10/09 12:02, , 9F
名稱一樣可以指定,但是有兩份老爸相同的資料就不妙了
10/09 12:02, 9F

10/09 12:09, , 10F
#19kSHvJ- 我在這篇有圖解了啦... 應該不會難理解吧?
10/09 12:09, 10F

10/09 13:15, , 11F
謝謝指點,我參考一下
10/09 13:15, 11F
文章代碼(AID): #1ApgdfA1 (C_and_CPP)
文章代碼(AID): #1ApgdfA1 (C_and_CPP)