Re: [程式] 請問一下C++繼承的問題
※ 引述《seeulin (My Way)》之銘言:
: 以上程式碼在編譯時期會發生錯誤
: 錯在b.Foo("Call B")的部分
: 但是將TestB的Foo function拿掉的話
: 就可以正常執行
: 請問版上的高手能夠幫忙解答一下嗎?
: 小弟實在百思不得其解啊...
這是 C++ 的一個規定
base class 的 virtual function 若有 overload
而其中之一在 derived class 中被改寫的話
其它的 overloaded function 會被蓋掉
所以你 TestB 就只能直接呼叫 int 的版本
char* 的版本也不是完全沒辦法用
只是要這樣寫
b.TestA::Foo("Call B");
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.116.140
※ 編輯: littleshan 來自: 59.121.116.140 (02/18 02:20)
推
02/18 20:26, , 1F
02/18 20:26, 1F
→
02/19 01:51, , 2F
02/19 01:51, 2F
推
02/19 12:42, , 3F
02/19 12:42, 3F
→
02/19 12:42, , 4F
02/19 12:42, 4F
討論串 (同標題文章)