對於初始化(構造)和賦值的概念
初始化(構造):建立乙個新的物件的時候
賦值:修改已有物件中的值
// 初始化 賦值
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 物件以值傳遞方式從函式返回時,若接受返回值的物件已經初始化過,則會呼叫賦值建構函式,且該物件還會呼叫析構函式,當物件中包含指標時,會使該指標失效,因此需要過載賦值建構函式,使用類...