C 建構函式

2021-07-08 13:20:44 字數 1208 閱讀 3433

c++—— 建構函式

建構函式:用於構造新物件 用於構造新物件 ,將值賦給物件的資料成員 。例如 :

class thing

thing a ,想使 a中的 m_ data=1,怎麼辦呢 ?我們知道程式不能直接訪問 a中的 m_ data,只能通過成員函式訪資料,所以只有通過 public中的成員函式對 m_ data進行賦值 。為達到以上目的 ,c++提供了 乙個特殊的成員函式 —— 建構函式。

建構函式可以分為下幾種:

1. 預設建構函式

class thing

如上例所示 ,我們沒有顯式定義建構函式 ,thing a;則 a. m_ data=0;這是因為編譯器提供了預設建構函式 ,如下 :

thing::thing()

只有當沒定義任何建構函式時編譯器才會提供預設建構函式。

2. 帶引數的建構函式

class thing

thing::thing()

thing::thing(int data )

如上所示,通過過載 ,類 thing 中有預設建構函式也有帶引數的建構函式。當進行如下操作時 :

thing a ;程式將呼叫 thing () ,即 a.m_data=5;

thing b( 50 );程式將呼叫thing(int data ),即 b.m_data=50;

3. 複製建構函式

複製建構函式用於將乙個物件複製到新建立的中 。

class something

如果現在有乙個 something 物件 motto,需要 定義乙個新物件並初始化為 motto物件 ,即 something metto=motto,此時就需要用到複製建構函式 。在上例中我們未定義複製建構函式 ,執行 something metto=motto操作將呼叫預設複製建構函式。

something metto=motto與下述**等效:

something metto;

metto.st=motto.st;

metto.len=motto.len;

需要注意的是預設建構函式逐個複製非靜態成員 ,複製的是成員值 。當把 metto 初始化為 motto 時,得到的是兩個指向同一位址的指標。這種複製也叫作淺度複製。當然,還有深度複製,有興趣可以自己看資料 。

C 建構函式 拷貝建構函式

建構函式 class base private int m var 建構函式無返回值型別,函式名和型別相同。拷貝建構函式傳遞引數為引用。1 class base2 7 拷貝建構函式 8 base base ref m var ref m var 9 11 private 12 intm var 13...

C 構造器(建構函式)

定義和作用 構造器是在構建類的 引用時 自動執行的方法。所以,每個類都必須至少要有乙個構造器。在訪問乙個類的時候,編譯器最先執行構造器中的 它與類同名,帶引數的構造器能夠獲取引數,但是與方法不同的是 構造器雖然也是一種 例項型別 即必須通過例項來進行呼叫,也可以稱之為引用型別 但是卻不能返回任何值 ...

C 建構函式

建構函式是一種特殊的成員函式,它主要用於為物件分配儲存空間,對資料成員進行初始化.1 建構函式的名字必須與類同名 2 建構函式沒有返回型別,它可以帶引數,也可以不帶引數 3 建構函式的主要作用是完成對類的初始化工作 4 在建立乙個類的新物件 使用new關鍵字 時,系統回自動呼叫給類的建構函式初始化新...