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 dựng và Hàm hủy  
Lập trình hướng đối tượng  
Hồ Tuấn Thanh – [email protected]  
10/9/18  
1
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  
10/9/18  
11  
pdf 11 trang myanh 10020 Free
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:

  • pdfbai_giang_lap_trinh_huong_doi_tuong_chuong_2_ham_dung_va_ham.pdf
  • cppL05P01-PhanSo-Operator.cpp
  • cppPhanSo.cpp
  • hPhanSo.h