今天俺看到了乙個比較疑惑的地方,公司的一段c++ code中有乙個類中帶了乙個引用物件,如下所示:
class class1
public:
private:
object & element;
然後對於這個element的初始化方法我從來沒見過,mark一下,因為我c++還是初學,所以這種問題還是了解一下,應該是某種規範,不知是否是拷貝建構函式:
class1 :: class1(..., object1 & object1) element(object1)
不知道這樣是不是就直接將object1直接賦值給class1物件的object成員了???因為這裡是引用,所以相當於c裡面的指標賦值。
結果在網上搜尋了一下前輩們的文章,已經有很多經典解釋了,答案是c++內的引用成員必須在初始化列表內初始化。類似的,const成員也必須在初始化列表內初始化。
C 中成員初始化順序
1.成員賦值初始化先於建構函式 2.成員賦值初始先從子類再到基類 3.建構函式初始化先從基類再到子類 4.靜態成員初始化優先於例項成員初始化 1.分配靜態成員的記憶體空間,此時空間儲存資料為0 2.執行類的靜態成員的初始化語句 3.執行類的靜態建構函式。1.分配例項成員的記憶體空間,此時空間儲存資料...
C 中成員初始化順序
1.成員賦值初始化先於建構函式 2.成員賦值初始先從子類再到基類 3.建構函式初始化先從基類再到子類 4.靜態成員初始化優先於例項成員初始化 1.分配靜態成員的記憶體空間,此時空間儲存資料為0 2.執行類的靜態成員的初始化語句 3.執行類的靜態建構函式。1.分配例項成員的記憶體空間,此時空間儲存資料...
C 中成員變數的初始化
類成員變數的初始化對於初學者來說是乙個頭疼的問題,總是記不住 型別應該怎樣進行初始化。為了解決後顧之憂,今天就把類中所有型別的成員變數的初始化做乙個總結。首先,我們來看看c 的類中都有哪幾種型別的成員變數。class test 大概的型別就是這幾類,當然還有其他一些比如 int f int g co...