籲請Largo兄及各位深藏不露的高手繼續跟末將探討C++多重繼承的問題,可別就此冷場了啊!

謝謝兩位。

在下後來又仔細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++粉絲們原諒。

 

請您先登陸,再發跟帖!