C++中賦值運算子和複製建構函式的區別是什麼?


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

複製建構函式 (語法)

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

賦值運算子 (語法)

classname Ob1, Ob2;
Ob2 = Ob1;

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


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

 

 

更新於:2019年7月30日

607 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.