C 學習筆記之拷貝構造

2021-10-05 04:48:15 字數 739 閱讀 6160

如若沒有拷貝建構函式的時候,系統會自動提供(淺拷貝)乙個拷貝建構函式,這樣的話,再創造乙個新的物件的話,會將類中的資料賦值給新的物件。但是如果類中有指標的話,就會把指標賦給它,但這要就會出現混亂。因此這就引出了拷貝建構函式的自己編寫。

#include

using

namespace std;

class

student

void

geta()

};intmain()

以上資料是淺拷貝,只是資料和資料之間的拷貝而已

拷貝構造:類名(const 類名&引用名);

#include

using

namespace std;

class

stuvoid

geta()

student

(const student&stu)};

void

test

(student stu)

student text

(student stu)

intmain()

拷貝建構函式的呼叫情況:

1,用乙個類物件去初始化該類的另乙個物件時;

2,如果函式的形參是類的物件,呼叫函式時進行實參傳遞時,呼叫拷貝構造

3,如果乙個函式的返回值是類物件,函式呼叫返回時。

C 學習筆記 拷貝建構函式

拷貝建構函式是一種特殊的建構函式 1 它是建構函式,所以函式名是類名 沒有返回值 2 它是特殊的建構函式 引數形式是固定的 class object 拷貝建構函式的含義 以乙個物件為藍本,來構造另乙個物件。object b object a b 稱作 以b為藍本,建立乙個新的物件a。a是b的乙個拷貝...

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

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

拷貝建構函式(C 學習筆記 25)

point p2 p1 其作用是,在建立新物件p2時,用已經存在的物件p1去初始化新物件p2,在這個過程中就要呼叫拷貝建構函式。自定義拷貝建構函式 見例 1 類名 類名 const 類名 物件名 普通的建構函式是在物件建立時被呼叫,而拷貝建構函式在以下3中情況下都會被呼叫 1 當用類的乙個物件去初始...