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

歡迎光臨散文網 會員登陸 & 注冊

Effective C++ 第四條 Make sure that objects are initialized before

2023-01-07 06:53 作者:九思519  | 我要投稿

確定對象被使用前已先被初始化

C++的對象創(chuàng)建之后,在某些情況下會被初始化,有些情況下卻不會,這一點難以靠記憶來分辨,所以需要在創(chuàng)建之后立即初始化,養(yǎng)成良好習慣。

在我們在C++中創(chuàng)建變量的時候,可能會忘記初始化

但是這樣存在潛在的風險,如果我們輸出 a 到屏幕上,可能會產生出無法預知的結果。因為我們申請的臨時變量是存儲在棧(stack)上的,在存儲a的位置可能之前存儲過別的變量,而臨時變量的釋放并不會將空間內容抹去,僅僅只是將 rsp 指針增大(stack由高地址向低地址增長),所以不對申請的變量初始化而直接使用是個不好的習慣。

賦值和初始化

賦值并不等于初始化,C++規(guī)定對象的成員變量初始化動作在進入構造函數(shù)本體之前

以類的構造函數(shù)為例

初始化的效果和賦值的效果是一樣的,但是初始化的效率比賦值要高很多。所以應該盡量采用初始化的方式來寫代碼。

初始化是有順序的,在類中,變量 m 先于變量 n 聲明,初始化同樣按照這個順序。

多文件編譯需要注意的事項

在本例子中,類A和類B在兩個編譯模塊中,其中A的成員函數(shù)fun通過調用b的op函數(shù)其作用,但是要考慮到,如果b沒有被初始化呢?那么程序就會出錯。在《Effective C++》中采取了一個辦法,就是使用 static 來解決,方法如下

利用static修飾產生一個b,這樣可以避免遇到b未初始化的問題。

Effective C++ 第四條 Make sure that objects are initialized before的評論 (共 條)

分享到微博請遵守國家法律
丽水市| 察哈| 阿克陶县| 交城县| 焦作市| 繁峙县| 喀什市| 秭归县| 三原县| 新化县| 鞍山市| 民权县| 奇台县| 合肥市| 来凤县| 甘泉县| 苏尼特左旗| 沁阳市| 东至县| 兖州市| 凤庆县| 扶风县| 和林格尔县| 永兴县| 蕲春县| 大方县| 辽阳市| 嵩明县| 眉山市| 荔浦县| 荆门市| 永寿县| 宁波市| 巴彦县| 石台县| 三河市| 黄陵县| 双辽市| 明星| 高淳县| 甘肃省|