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

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

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的評論 (共 條)

分享到微博請遵守國家法律
阳谷县| 涿鹿县| 巴楚县| 台东市| 沂源县| 东港市| 沐川县| 呼伦贝尔市| 尼木县| 双鸭山市| 建水县| 陵川县| 明溪县| 新宾| 淮安市| 吉安市| 阿坝县| 城步| 布尔津县| 浦城县| 安龙县| 油尖旺区| 前郭尔| 林芝县| 西充县| 安丘市| 始兴县| 泸州市| 阳江市| 丰顺县| 涪陵区| 平江县| 东源县| 无为县| 酒泉市| 电白县| SHOW| 潢川县| 南岸区| 黄山市| 三台县|