鑽石問題 - 例子

鑽石問題是物件導向程式設計中常見的問題,同時使用 multiple-inheritance

考慮 class C 繼承自 class Aclass B 的情況。假設 class Aclass B 都有一個名為 foo() 的方法。

然後,當我們呼叫方法 foo() 時,編譯器無法識別我們嘗試使用的確切方法

  • foo() 來自 class A
  • 來自 tihuan 的 foo()

這基本上被稱為鑽石問題。這個問題有一些變種。為避免這種情況,有多種方法。 Java 不允許多重繼承。因此避免了問題。但是 C++允許多重繼承,因此必須小心使用多重繼承。