1樓:南霸天
解決方法:
法一 、類名限定:
呼叫時指名呼叫的是哪個類的函式,如:
c1.a::f();
c1.b::f();
法二、 同名覆蓋:
在c中宣告乙個同名函式,該函式根據需要內部呼叫a的f或者是b的f。如:
class c:public a,public b};法三、虛基類(用於有共同基類的場合):
virtual 修飾說明基類,如:
class b1:virtual public b
2樓:匿名使用者
b.初看題目,答案應該在bc之間.
我就只解釋錯誤的了.
假設:基類中有方法void cool(int i)派生類中也有方法void cool(int i)實際執行中派生類的cool方法會覆蓋基類中的同名方法.
因為基類的cool方法並沒有消失,仍然可以通過其他途徑呼叫.
所以,這樣編寫**時很容易造成混淆(二義性).
3樓:匿名使用者
同意b如:
class a
}class b : public a
}void main()
請問到底是呼叫a中的display,還是b中的呢?
這就產生二義性了!