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

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

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| 勐海县| 车险| 万源市| 香港 | 翁源县| 三台县| 民乐县| 灵石县| 临朐县| 永川市| 大渡口区|