c 中建構函式,複製建構函式,組合類的說明

2021-08-31 00:04:17 字數 812 閱讀 8193

c++中建構函式的種類很多:

預設建構函式,無參建構函式,過載建構函式,複製建構函式(拷貝建構函式),型別轉換建構函式,符號過載建構函式。

一般在用類定義物件時候,如果類中無顯示的定義建構函式,那麼就呼叫系統都預設建構函式

無參建構函式:無參建構函式一般指顯示定義了建構函式,但是建構函式沒有傳參,一般只為成員變數提供初始值的功能。

過載建構函式:過載建構函式一般指顯示定義了建構函式,而且建構函式中有引數的傳入,這裡的通過函式過載的方法區別各個建構函式,並為引數提供初始化。

複製建構函式: 複製構造函式引數為類物件本身的引用,用於根據乙個已存在的物件複製出乙個新的該類的物件,一般在函式中會將已存在物件的資料成員的值複製乙份到新建立的物件中,如果顯示的定義建構函式,那麼系統將生成乙個預設的複製建構函式,但是這種稱為淺層拷貝,對靜態成員的操作會很危險,一般建議顯示定義複製建構函式。

型別轉換建構函式:型別轉換建構函式,根據乙個指定的型別的物件建立乙個本類的物件,例如將乙個double型別轉換為乙個複數型別。

組合類中使用複製建構函式何建構函式:

在構造line的時候 會先拷貝構造point pp1,point pp2,因為只有這樣等下才有了資源,然後才能初始化變數也就是point p1, p2。通過初始化列表初始化變數:p1(pp1),p2(pp2),如果你沒有這樣初始,就會呼叫point的建構函式,也就會呼叫拷貝構造,如果是這樣的p1 = pp1; p2 = pp2; 也僅僅是賦值而已,而如果是 p1的話,就又會呼叫point的建構函式也就是 p1=100的話,而p1=100這是隱式呼叫,如果在point的建構函式前加上explicit 的話那就必須要這樣呼叫了p1(100)。

c 類 建構函式 複製建構函式

複製建構函式是一種特殊的建構函式,它的作用是用乙個已經存在的物件去初始化另乙個物件。一般情況下不需要自行定義複製建構函式,系統預設提供乙個逐個複製成員值的複製建構函式。何時要使用呢?1.將新物件初始化為乙個同類物件 2.按值將物件傳遞給函式 3.函式按值返回物件 4.編譯器生成臨時物件 簡單的樣例如...

C 中類的建構函式與複製建構函式

建構函式是類的特殊的成員函式,只要建立類型別的新物件,都要執行建構函式。建構函式的工作是保證每個物件的資料成員具有合適的初始值。建構函式的名字與類的名字相同,並且不能指定返回型別。像其他任何函式一樣,它們可以沒有形參,也可以定義多個形參。複製建構函式是一種特殊建構函式,具有單個形參,該形參 常用co...

類與物件 組合類的建構函式和複製建構函式

初始化列表是用於構造函式引數的初始化,與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。如 class myclock 建構函式的實現和初始化設定 myclock myclock int hh,int mm,int ...