6.5.4 Hàm khởi tạo sao chép – copying constructors (4)

Giả sử rằng chúng ta không muốn đối tượng của chúng ta chia sẻ bất kỳ dữ liệu nào. Chúng ta muốn cô lập các đối tượng và giữ chúng tách rời nhau. Để làm việc đó chúng ta cần thêm một copying constructor tường minh vào cho lớp. Copying constructor mà chúng ta thêm vào sẽ tự chịu trách nhiệm tạo ra bản sao. Hãy nhớ rằng việc sao chép sẽ không còn tự động nữa một khi một lớp đã khai báo một copying constructor.

Chương trình bây giờ như sau →

copying constructor mới được thêm vào đã cấp phát một bộ nhớ mới và sao chép nội dung dữ liệu gốc vào đó. Điều này đảm bảo rằng đối tượng mới sẽ được tách biệt khỏi đối tượng gốc và sẽ không có phần bộ nhớ dùng chung.

Chương trình sẽ xuất các dòng sau ra màn hình:

124
123
123