C++中賦值運算子和複製建構函式的區別是什麼?
複製建構函式和賦值運算子都用於將一個物件初始化為另一個物件。它們的主要區別在於,複製建構函式為新物件建立了一個單獨的記憶體塊。但賦值運算子不會建立新的記憶體空間。它使用引用變數指向之前的記憶體塊。
複製建構函式 (語法)
classname (const classname &obj) {
// body of constructor
}賦值運算子 (語法)
classname Ob1, Ob2; Ob2 = Ob1;
讓我們看看複製建構函式和賦值運算子之間的詳細區別。
| 複製建構函式 | 賦值運算子 |
|---|---|
| 複製建構函式基本上是一個過載的建構函式 | 賦值運算子就是一個運算子。 |
| 這將使用已存在的物件初始化新物件。 | 這將一個已存在的物件的值賦給另一個已存在的物件。 |
| 當使用某個已存在的物件建立新物件時,使用複製建構函式。 | 當我們想將已存在的物件賦給新物件時,使用此運算子。 |
| 這兩個物件使用單獨的記憶體位置。 | 使用一個記憶體位置,但不同的引用變數指向同一位置。 |
| 如果類中沒有定義複製建構函式,編譯器將提供一個。 | 如果沒有過載賦值運算子,則將進行按位複製。 |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP