C++ 中的複製建構函式與賦值運算子


複製建構函式和賦值運算子用於將一個物件初始化為另一個物件。它們之間的主要區別在於,複製建構函式為新物件建立了一個單獨的記憶體塊。但是賦值運算子不會建立新的記憶體空間。它使用引用變數指向之前的記憶體塊。

複製建構函式(語法)

classname (const classname &obj) {
   // body of constructor
}

賦值運算子(語法)

classname Ob1, Ob2;
Ob2 = Ob1;

讓我們看看複製建構函式和賦值運算子之間的詳細區別。

複製建構函式
賦值運算子
複製建構函式基本上是一個過載的建構函式
賦值運算子基本上是一個運算子。
這將使用已存在的物件初始化新物件
這將一個已存在物件的的值賦給另一個已存在物件。
當使用某個現有物件建立新物件時,使用複製建構函式
當我們想要將現有物件賦值給新物件時,使用此運算子。
這兩個物件使用單獨的記憶體位置。
使用一個記憶體位置,但不同的引用變數指向同一位置。
如果類中未定義複製建構函式,則編譯器會提供一個。
如果賦值運算子沒有過載,則會進行按位複製

 

 

 

更新於: 2019-07-30

3K+ 次檢視

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告