C 賦值構造拷貝

2021-09-29 07:23:05 字數 698 閱讀 5707

對於初始化(構造)和賦值的概念

初始化(構造):建立乙個新的物件的時候

賦值:修改已有物件中的值

// 初始化 賦值

int a = 5; // 初始化

int b = (a = 6); // 賦值 + 初始化

test3 t = 6; // 構造

test3 t2 = (t = 2); // 賦值 + 拷貝構造

class test3 

// 賦值函式

test3 &operator =(int a)

// 拷貝構造和拷貝賦值必須幹的是一件事,都是通過乙個已有物件對另乙個物件的操作

// 拷貝構造

test3(const test3 &op)

// 拷貝賦值函式

test3 &operator =(const test3 &op)

// todo

// 移動建構函式

test3(test3 &&op) {}

// 移動賦值函式

test3 &operator =(test3 &&op)

};

按照呼叫來分,如果是建立乙個新的物件時候,要麼是建構函式要麼是拷貝構造。

按照傳參來分,傳的引數是int那麼就是構造或賦值函式,傳的引數是另乙個物件的引用,那麼就是拷貝構造或拷貝賦值

C 建構函式例項 拷貝構造,賦值

define crt secure no warnings windows系統 include include include using namespace std class student student operator const student s student const stude...

拷貝構造和拷貝賦值

注意指標型別成員變數的深拷貝問題 拷貝構造屬於定義,並賦值 拷貝賦值屬於已經定義,只是賦值。拷貝構造的深拷貝,因為如果提供了拷貝建構函式,則構造該物件時使用的是拷貝建構函式。在拷貝建構函式中只需要 分配新資源,拷貝新內容,返回自引用即可。但是在拷貝賦值函式中,如果存在指標成員變數一般在物件定義時已經...

C 中的拷貝構造 賦值建構函式

c 中的拷貝構造,賦值構造的形式如下 eg a a a a const a a a operator const a a 物件以值傳遞方式從函式返回時,若接受返回值的物件已經初始化過,則會呼叫賦值建構函式,且該物件還會呼叫析構函式,當物件中包含指標時,會使該指標失效,因此需要過載賦值建構函式,使用類...