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

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

分享到微博請遵守國家法律
达日县| 贡山| 靖州| 杂多县| 攀枝花市| 修武县| 惠安县| 渝北区| 崇州市| 全州县| 神农架林区| 昔阳县| 神池县| 耒阳市| 丰城市| 石棉县| 荥阳市| 和林格尔县| 岳阳市| 武夷山市| 若羌县| 屏东市| 泗阳县| 蒲城县| 获嘉县| 锡林郭勒盟| 东乡县| 滨州市| 车险| 长治市| 金华市| 江永县| 长沙县| 东丽区| 开平市| 张家口市| 长治县| 汉川市| 沈阳市| 西乌| 郁南县|