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

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

Effective C++ 第九條Never call virtual functions during constructio

2023-01-12 17:15 作者:九思519  | 我要投稿

Never call virtual functions during construction or destruction.絕不在構(gòu)造和析構(gòu)過程中調(diào)用virtual函數(shù)

在構(gòu)造函數(shù)中調(diào)用pure函數(shù)

????????以上程序無法正常執(zhí)行,先搞清楚程序執(zhí)行的順序,Derived創(chuàng)建之前要先創(chuàng)建Base,也就是說先執(zhí)行Base的構(gòu)造函數(shù)的時候需要執(zhí)行 op 函數(shù),但是此時還沒有進入Derived,op 函數(shù)只是一個 pure 函數(shù),沒有實際代碼,也就是無法執(zhí)行。

在構(gòu)造函數(shù)中使用impure函數(shù)

????????在構(gòu)造函數(shù)中使用了impure函數(shù)確實不會造成錯誤,但是結(jié)果與設(shè)計相異,我們在Deerived中設(shè)計op 函數(shù)輸出的事 “Hello Derived”,但是輸出的結(jié)果卻是 “Hello Base”。因為Derived構(gòu)造函數(shù)實現(xiàn)之前要先實現(xiàn)Base的構(gòu)造函數(shù),此時Base調(diào)用的是屬于Base中的op 函數(shù)而非Derived中的構(gòu)造函數(shù),從而造成與設(shè)計不符合。

解決辦法

????????將 op 設(shè)計成 non-pure 函數(shù),通過給Derived傳入制定參數(shù)來實現(xiàn)目的。

??這里不使用virtual函數(shù),也實現(xiàn)了同樣的功能.

Effective C++ 第九條Never call virtual functions during constructio的評論 (共 條)

分享到微博請遵守國家法律
宣恩县| 天峨县| 沙坪坝区| 鄂托克旗| 莒南县| 雅江县| 客服| 长治县| 灵璧县| 天峨县| 孝昌县| 云阳县| 华坪县| 略阳县| 建平县| 太和县| 长沙县| 梨树县| 哈尔滨市| 上犹县| 池州市| 铜陵市| 肇东市| 金山区| 辽宁省| 喀喇| 古浪县| 贵州省| 瓦房店市| 六盘水市| 广汉市| 宜章县| 永安市| 托克托县| 克什克腾旗| 昆山市| 吉木萨尔县| 新干县| 江华| 开封县| 沙田区|