国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
铜梁县| 色达县| 闻喜县| 玛多县| 岱山县| 万安县| 阿拉善右旗| 南陵县| 阿拉善盟| 梅河口市| 佳木斯市| 峨眉山市| 珲春市| 周宁县| 滨海县| 晋宁县| 彰武县| 东乌| 宣恩县| 通山县| 民权县| 玉门市| 江源县| 上饶县| 龙泉市| 崇仁县| 盐城市| 百色市| 祁阳县| 敦化市| 洱源县| 阜新市| 广东省| 北辰区| 察雅县| 隆化县| 辽宁省| 甘谷县| 阳谷县| 霍林郭勒市| 许昌县|