拷貝建構函式(複製建構函式)

2022-05-11 18:50:03 字數 697 閱讀 5091

執行:物件a=物件b時,系統需要呼叫拷貝建構函式,如果程式設計師沒寫,則呼叫預設的拷貝建構函式。

預設的拷貝建構函式利用淺拷貝方式,

它的樣子是:a(const  a & a)

淺拷貝:拷貝的時候,兩個指標指向同乙個區域:

char* str1 = "

helloworld";

char* str2 = str1;

深拷貝:拷貝的時候,兩個指標指向不同的區域,只不過區域的內容是一樣的:

//

深度拷貝

int a = 8

;int *p = new

int;

*p = a;

.h定義拷貝建構函式:

teacher(const teacher &a);  // 手寫拷貝建構函式,注意這個引數是確定的,不能過載

.cpp寫拷貝建構函式

teacher::teacher(const teacher &a)

};主函式通過物件例項化呼叫拷貝建構函式:

teacher t3 = t1; // 如果是賦物件,則會呼叫拷貝建構函式,不自己寫的話會預設有

teacher t4(t1); // 這樣也會呼叫拷貝建構函式,等價於:teacher t4=t1;

c 複製 拷貝建構函式

在c 中,定義乙個空類時,編譯器會預設宣告6個成員函式,它們分別是 class empty 注意 一下,編譯器預設合成的析構函式不是虛函式。首先,說一下什麼是拷貝建構函式 也可以叫複製建構函式 它是乙個特殊的建構函式,具有單個形參 此形參是對該類型別的引用,需要用const修飾,否則會無限迴圈呼叫複...

c 拷貝(複製)建構函式

class line line line const line obj 拷貝建構函式是一種特殊的建構函式,它在建立物件時,是使用同一類中之前建立的物件來初始化新建立的物件。拷貝建構函式通常用於 1 通過使用另乙個同型別的物件來初始化新建立的物件,即用已有物件給新建立物件賦值。line line1 1...

呼叫C 複製建構函式和拷貝建構函式

呼叫c 複製建構函式和拷貝建構函式 1.何時呼叫複製建構函式 複製建構函式用於將乙個物件複製到新建立的物件中。也就是說,它用於初始化過程中,而不是常規的賦值過程中。類的複製建構函式原型通常如下 class name const class name 它接受乙個指向類物件的常量引用作為引數。例如,st...