謝謝兩位。
在下後來又仔細google了與C++多重繼承相關的帖子,發現菱形問題的實質是:A是基類,定義了一個變量a, B和C都是A的子類,並分別繼承了一個變量a。類D則既是B又是C的子類。問題是:D搞不清楚變量a應該是繼承B從A繼承的a還是繼承C從A繼承的a,因為現在有了兩份a的copy: 一份是B從A繼承的,而另一份是C從A繼承的。
靠!
這實在是C++的發明者們發渾蛋,自己把自己搞暈了:為什麽不按照變量a的原生類,隻設定一份a呢?那樣,不管是從B還是從C繼承的a,其實都是同一份由A類原生的變量a。這樣一來,不管再怎麽亂倫,我們永遠隻承認那一份從原生類中的定義的變量不就得了嗎?
也許鄙人理解有誤,問題不是那麽簡單。敬請各位高手繼續指點迷津。
另外,言辭中如有對C++眾位祖師爺有冒犯之處,敬請各位C++粉絲們原諒。