Bài giảng Lập trình hướng đối tượng - Chương 2: Hàm dựng và Hàm hủy (Phần 2) - Hồ Tuấn Thanh
Hàm hủy
• Trong lớp MangSoNguyen, ta sử dụng con trỏ
a để chứa một danh sách các số nguyên.
• Để tránh rò rỉ bộ nhớ, trong hàm hủy lớp
MangSoNguyen, ta tiến hành kiểm tra con trỏ a
và gọi toán tử delete.
2
Hàm nhập
• Giả sử ta có thêm hàm Nhap trong lớp
MangSoNguyen
Gọi hàm dựng sao chép
4
Hàm dựng sao chép mặc định
• Nếu ta không khai báo hàm dựng sao chép, thì
trong mỗi lớp sẽ có sẵn một hàm dựng sao
chép mặc định.
• Hàm dựng sao chép mặc định thực hiện sao
chép từng bit các thành phần từ đối tượng
nguồn sang đối tượng đích.
• Hàm dựng sao chép mặc định làm việc rất
tốt với các lớp chứa các thuộc tính thuộc kiểu
dữ liệu cơ bản (int, float, double, long, PhanSo,
Diem, …)
5
Hàm dựng sao chép mặc định
• Tuy nhiên, vấn đề sẽ xảy ra khi tồn tại thuộc
tính có kiểu con trỏ.
• Ở đây, sau khi sao chép mặc định, 2 con trỏ
ptr của nguồn và đích cùng trỏ về 1 vùng nhớ
màu cam.
• Do cài đặt của hàm hàm hủy sẽ dẫn đến tình
Đối tượng nguồn
trạng d
Đối tượng đích
ptr
ptr
a
a
b
b
Cài đặt hàm dựng sao chép
7
Toán tử gán bằng mặc định
• Tương tự như hàm dựng sao chép, trong một
lớp, nếu không cài đặt toán tử gán bằng, lớp
sẽ có sẵn toán tử gán bằng mặc định.
• Toán tử gán bằng mặc định làm việc khá tốt
với những kiểu dữ liệu cơ bản.
• Toán tử gán bằng mặc định sẽ phát sinh vấn
đề nếu thuộc tính là con trỏ.
8
Toán tử gán bằng mặc định
Cài đặt toán tử gán bằng
10
Bạn đang xem tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 2: Hàm dựng và Hàm hủy (Phần 2) - Hồ Tuấn Thanh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_lap_trinh_huong_doi_tuong_chuong_2_ham_dung_va_ham.pdf
L05P01-PhanSo-Operator.cpp
PhanSo.cpp
PhanSo.h

