執行:物件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...