最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Effective C++ 第四十條 Use multiple inheritance judiciously.

2023-03-01 00:07 作者:九思519  | 我要投稿

明智而審慎地使用多重繼承

使用多重繼承就是一個類同時繼承多個類,這就可能會出現(xiàn)幾個父類有同名接口,而在子類中調(diào)用這個名字的接口的時候會出現(xiàn)歧義。

其實哪怕對于 base2 是 private 繼承,也同樣是默認兩可的,C++ 檢查函數(shù)調(diào)用的時候,private 接口和 public 接口可能具有相同的匹配程度,從而導(dǎo)致無法分辨。

如果想要解決這個歧義,你必須在調(diào)用的時候就區(qū)分清楚

還有一種繼承就是菱形繼承

如果在這個例子中,F(xiàn)ile 有一個接口 fun,那么 InputFile 和 OutputFile 也有一個 fun,此時 IOFile 就有兩個 fun 了。這雖然有點難以接受,但是卻是事實。如果你希望 IOFile 只有一份 fun,你可以使用 virtual?繼承。

這樣 IOFile 就只有一份 fun。但是這也有壞處,就是 virtual? 繼承的類體積往往比 non-virtual 繼承而來的更大,而且訪問 virtual base classes 成員變量所需要的時間也更長。這就是 virtual 繼承的代價。

而且派生自 virtual base 的類如果需要初始化,就必須知道其 virtual base 的細節(jié)(定義),本例中的 IOFile 如果初始化必須知道 File 的定義。

如果不得不使用 virtual base,那么請盡量避免在其中放入數(shù)據(jù),以免引起不必要的麻煩。

多重繼承也有其好處,前面提到過 public?繼承可以繼承接口,private 繼承實現(xiàn),那么可以讓 derived 繼承 base1 的接口,而繼承 base2 的實現(xiàn)。


Effective C++ 第四十條 Use multiple inheritance judiciously.的評論 (共 條)

分享到微博請遵守國家法律
荆州市| 永顺县| 湘乡市| 辽阳县| 金溪县| 固始县| 天长市| 绥江县| 句容市| 舞钢市| 巴塘县| 乌兰浩特市| 渑池县| 绥江县| 墨竹工卡县| 仁寿县| 罗田县| 莱阳市| 锡林郭勒盟| 武鸣县| 平阳县| 宜城市| 罗江县| 灵宝市| 莱阳市| 中牟县| 大连市| 林州市| 西城区| 旌德县| 延寿县| 高雄市| 长葛市| 壶关县| 兴隆县| 唐海县| 丹巴县| 内江市| 新巴尔虎右旗| 蒙山县| 通许县|