建構函式 三

2021-08-30 13:53:13 字數 967 閱讀 1312

建構函式

1 ;特殊的成元函式-- 控制物件·初始化

建構函式的名稱與類名相同,並且不返回任何型別,也不會返回 void

2;可以有多個建構函式(函式過載)== 引數列表必須不同

類的建構函式初始化列表
classaa

()};

資料成員按型別分類並分情況說明:

初始化列表的成員初始化順序

class b; 

b::b(int x,int y):_a(x),_b(y)

1: 拷貝建構函式

定義 第乙個引數是自身的引用型別(必須是引用型別),且任何額外引數都有預設值

合成拷貝建構函式

編譯器合成 (預設一定會生成)

初始化方式

直接初始化 ;編譯器選擇普通函式與所給引數最匹配的建構函式

拷貝初始化; 編譯器將右側物件拷貝到正在建立的物件中

\* 拷貝初始化在下列情況下依然發生

> 將物件作為乙個實參傳遞給乙個非引用型別的物件

>從 乙個返回型別為非引用型別的函式返回乙個物件 return !&;

> 用花括號初始化乙個陣列元素或乙個聚合類成員

示例

class

foo;

//必須是引用型別

// …

};

2.: 拷貝賦值函式

例項
int

main()

C 學習筆記之建構函式(三)拷貝(複製)建構函式

定義 使用類的乙個物件來構造和初始化另乙個物件,這另乙個物件之前是不存在的。要注意理解拷貝 複製 和賦值的區別,拷貝和複製時另乙個物件之前是不存在的,而賦值是兩個物件都構造好了。如 a a a b a a b a 這是拷貝 a a a b b a 這是賦值 拷貝建構函式的過載宣告如下 a const...

建構函式 拷貝建構函式 賦值建構函式

class和struct很大乙個區別在於,c除了成員的訪問控制許可權,struct中的成員預設是public,而class中的field預設是private class還有乙個special的地方是它有建構函式 constructor。建構函式是class中的一員,和成員變數 其他成員函式一起構成乙...

實驗三 建構函式與析構函式

1.熟悉類的定義格式和類中成員的訪問許可權。2.建構函式與析構函式的呼叫時機與順序。3.掌握物件的定義以及物件的初始化的時機與方法。1.下面程式sy3 1.cpp中用error標明的語句有錯,在不刪除和增加 行的情況下,改正錯誤語句,使其正確執行。include using namespace st...