C++中的一些總結

(1)爲什麼類需要參數列表?完全可以在構造函數中對成員變量賦值啊?

在構函數可以使用參數列表或者在構造函數內部對成員變量賦值,但是對於const類型的成員變量只能初始化,不能在構造函數內部賦值。當然也可以在定義const成員變量的時候初始化,但是這樣就失去了意義,這樣做的後果是對於每一個該類的對象,這個const成員變量都是一個固定的值。

 

主要是性能問題,對於內置類型,如int, float等,使用初始化類表和在構造函數體內初始化差別不是很大,但是對於類類型來說,最好使用初始化列表,爲什麼呢?使用初始化列表少了一次調用默認構造函數的過程,這對於數據密集型的類來說,是非常高效的。https://blog.csdn.net/baidu_35679960/article/details/78929018

 

(2)爲什麼類的類的構造函數後面 = delete ?

這種寫法表明禁止使用默認構造函數。

(3)爲什麼一部分虛函數後面 = 0 ?

這種寫法表示這個函數是純虛函數,抽象類的純虛函數是不需要實現的,在子類中進行重寫。

(4)explicit關鍵字什麼意思

我們通常可以在類的構造函數前面看到這個關鍵字,表明顯式構造函數,對應的爲implicit隱式構造函數,默認都是隱式的。

explicit關鍵字只需用於類內的單參數構造函數前面。由於無參數的構造函數和多參數的構造函數總是顯示調用,這種情況在構造函數前加explicit無意義。

 google的c++規範中提到explicit的優點是可以避免不合時宜的類型變換,缺點無。所以google約定所有單參數的構造函數都必須是顯示的,只有極少數情況下拷貝構造函數可以不聲明稱explicit。例如作爲其他類的透明包裝器的類

https://www.cnblogs.com/rednodel/p/9299251.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章