Trong bài viết này, chúng ta sẽ hiểu sự khác biệt giữa copy constructor và assignment operator trong C++.
Copy Constructor
- Khởi tạo đối tượng mới với dữ liệu/giá trị của đối tượng đã tồn tại.
- Sử dụng khi tạo đối tượng mới từ đối tượng hiện có.
- Cả hai đối tượng lưu ở vị trí bộ nhớ riêng biệt.
- Nếu không định nghĩa, trình biên dịch cung cấp mặc định.
Assignment Operator
- Là một toán tử.
- Gán giá trị của đối tượng này cho đối tượng khác, cả hai đã tồn tại.
- Sử dụng khi cần gán đối tượng hiện có cho đối tượng mới.
- Sử dụng một vị trí bộ nhớ cho đối tượng này.
- Nhưng có nhiều biến tham chiếu trỏ đến vị trí này.
- Nếu không nạp chồng, sẽ tạo bản sao bitwise (shallow copy).