Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa toán tử gán và hàm tạo sao chép trong C ++ là gì?

Phương thức khởi tạo Copy và các toán tử gán được sử dụng để khởi tạo một đối tượng này sang một đối tượng khác. Sự khác biệt chính giữa chúng là hàm tạo sao chép tạo ra một khối bộ nhớ riêng cho đối tượng mới. Nhưng toán tử gán không tạo không gian bộ nhớ mới. Nó sử dụng biến tham chiếu để trỏ đến khối bộ nhớ trước đó.

Copy Constructor (Cú pháp)

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

Toán tử chỉ định (Cú pháp)

classname Ob1, Ob2;
Ob2 = Ob1;

Hãy để chúng tôi xem sự khác biệt chi tiết giữa phương thức tạo Bản sao và toán tử chuyển nhượng.


Copy Constructor
Toán tử Bài tập
Hàm tạo Copy về cơ bản là một hàm tạo được nạp chồng
Toán tử gán về cơ bản là một toán tử.
Điều này khởi tạo đối tượng mới với một đối tượng đã tồn tại
Điều này chỉ định giá trị của một đối tượng cho một đối tượng khác, cả hai đều đã tồn tại.
Copy constructor được sử dụng khi một đối tượng mới được tạo với một số đối tượng hiện có
Toán tử này được sử dụng khi chúng ta muốn gán đối tượng hiện có cho đối tượng mới.
Cả hai đối tượng đều sử dụng các vị trí bộ nhớ riêng biệt.
Một vị trí bộ nhớ được sử dụng nhưng các biến tham chiếu khác nhau đang trỏ đến cùng một vị trí.
Nếu không có phương thức tạo bản sao nào được định nghĩa trong lớp, trình biên dịch sẽ cung cấp một phương thức khởi tạo.
Nếu toán tử gán không bị quá tải thì bản sao bitwise sẽ được tạo