无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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.的評論 (共 條)

分享到微博請遵守國家法律
兴宁市| 姚安县| 墨脱县| 安福县| 龙海市| 新竹市| 宁明县| 克拉玛依市| 乌拉特前旗| 连江县| 梁平县| 馆陶县| 定日县| 高要市| 元氏县| 沂源县| 祁东县| 广灵县| 杨浦区| 互助| 两当县| 南溪县| 西平县| 贺兰县| 长兴县| 赤城县| 鸡西市| 绥江县| 孝义市| 肥西县| 河东区| 铁岭市| 韶山市| 呼伦贝尔市| 枣强县| 田林县| 民和| 安国市| 望都县| 南安市| 新河县|