Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
462,53 KB
Nội dung
LTHĐT Khoa CNTT Chƣơng PHƢƠNG THỨC THIẾT LẬP, PHƢƠNG THỨC PHÁ HỦY GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT MỤC TIÊU Hiểu phương thức thiết lập gì? Hiểu phương thức phá hủy gì? GV Nguyễn Sơn Hồng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT PHƢƠNG THỨC THIẾT LẬP CONSTRUCTORS Mục tiêu: phương thức thiết lập lớp có nhiệm vụ thiết lập thơng tin ban đầu cho đối tượng thuộc lớp đối tượng khai báo GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.1 CÁC ĐẶC ĐIỂM CỦA PHƢƠNG THỨC THIẾT LẬP Tên phương thức thiết lập trùng với tên lớp Khơng có giá trị trả Được tự động gọi thực đối tượng khai báo Có thể có nhiều phương thức thiết lập lớp Trong trình sống đối tượng có lần phương thức thiết lập gọi thực mà thơi đối tượng đời Các phương thức thiết lập lớp thuộc nhóm phương thức khởi tạo GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.2 PHÂN LOẠI PHƢƠNG THỨC THIẾT LẬP Ta chia phương thức thiết lập lớp thành nhóm sau: Phương thức thiết lập mặc định (default constructor) Phương thức thiết lập chép (copy constructor) Phương thức thiết lập nhận tham số đầu vào Phương thức thiết lập mặc định phương thức thiết lập thông ban đầu cho đối tượng thuộc lớp bằng giá trị mặc định (do người lập trình định) GV Nguyễn Sơn Hồng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.2 PHÂN LOẠI PHƢƠNG THỨC THIẾT LẬP Phương thức thiết lập chép (copy constructor) phương thức thiết lập nhận tham số đầu vào đối tượng thuộc lớp Các thông tin ban đầu đối tượng hồn tồn giống thơng tin đối tượng tham số đầu vào Ngoài ra, người ta nói phương thức thiết lập chép sử dụng để tao đối tượng giống hồn tồn đối tượng có sẵn Phương thức thiết lập nhận tham số đầu vào phương thức thiết lập ko phải phương thức thiết lập mặc định phương thức thiết lập chép GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.3 VÍ DỤ MINH HỌA PHƢƠNG THỨC THIẾT LẬP Bài toán: Hãy khai báo định nghĩa phương thức thiết lập cho lớp đối tượng CPhanSo Khai báo lớp 11 class CPhanSo 12 { 13 14 15 16 17 18 19 private: int tu; int mau; public: CPhanSo(); CPhanSo(int, int); CPhanSo(const CPhanSo&); 20 }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.3 VÍ DỤ MINH HỌA PHƢƠNG THỨC THIẾT LẬP Định nghĩa phương thức thiết lập mặc định CPhanSo::CPhanSo() { tu = 0; mau = 1; } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.3 VÍ DỤ MINH HỌA PHƢƠNG THỨC THIẾT LẬP Định nghĩa phương thức thiết lập chép CPhanSo::CPhanSo(const CPhanSo&x) { tu = x.tu; mau = x.mau; } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.3 VÍ DỤ MINH HỌA PHƢƠNG THỨC THIẾT LẬP Định nghĩa phương thức thiết lập biết đầy đủ thông tin CPhanSo::CPhanSo(int t, int m) { tu = t; mau = m; } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 10 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.4 HƢỚNG DẪN SỬ DỤNG Hãy xem xét đoạn chương trình sau cho biết có phương thức gọi thực hiện: CPhanSo a; a.Nhap(); a.Xuat(); Trả lời: Phương thức… Phương thức nhập Phương thức xuất GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 11 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.5 HƢỚNG DẪN SỬ DỤNG Hãy xem xét đoạn chương trình sau cho biết có phương thức gọi thực hiện: CPhanSo a, b(1,2); a.Nhap(); b.Xuat(); CPhanSo c(a); c.Xuat(); Trả lời: Phương thức… Phương thức… Phương thức… Phương thức… Phương thức… Phương thức… GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 12 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.6 Ý NGHĨA SỬ DỤNG PHƢƠNG THỨC THIẾT LẬP Khởi tạo giá trị ban đầu cho đối tượng thuộc lớp đối tượng khai báo Ép kiểu từ đối tượng sang đối tượng khác GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 13 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.7 ỨNG DỤNG Bài toán: Hãy khai báo định nghĩa phương thức thiết lập cho lớp đối tượng ngày Khai báo lớp 11 class CNgay 12 { 13 private: 14 int ng; 15 int th; 16 int nm; 17 public: 18 CNgay(); 19 CNgay(const CNgay &); 20 CNgay(int,int,int); 21 }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 14 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.7 ỨNG DỤNG Định nghĩa phương thức thiết lập mặc định 11 CNgay::CNgay() 12 { 13 ng = 1; 14 th = 1; 15 nm = 1; 16 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 15 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.7 ỨNG DỤNG Định nghĩa phương thức thiết lập biết đầy đủ thông tin 11 CNgay::CNgay(int ngng, int thth, int nmnm) 12 { 13 ng = ngng; 14 th = thth; 15 nm = nmnm; 16 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 16 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 1.7 ỨNG DỤNG Định nghĩa phương thức thiết lập chép 11 CNgay::CNgay(const CNgay &x) 12 { 13 ng = x.ng; 14 th = x.th; 15 nm = x.nm; 16 } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 17 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT PHƢƠNG THỨC PHÁ HỦY DESTRUCTOR Mục tiêu: Phương thức phá hủy lớp có nhiệm vụ dọn dẹp “xác chết” đối tượng đối tượng “đi bán muối” Nói cách khác, phương thức phá hủy có nhiệm vụ thu hồi lại tất tài nguyên cấp phát cho đối tượng đối tượng hết phạm vi hoạt động GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 18 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 2.1 CÁC ĐẶC ĐIỂM CỦA PHƢƠNG THỨC PHÁ HỦY Tên phương thức trùng với tên lớp có dấu ngã đằng trước Khơng có giá trị trả Khơng có tham số đầu vào Được tự động gọi thực đối tượng hết phạm vi sử dụng Phương thức phá huỷ thuộc nhóm phương thức xử lý Có có phương thức phá huỷ lớp mà thơi Trong q trình sống đối tượng có có lần phương thức phá hủy gọi thực mà GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 19 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 2.2 VÍ DỤ MINH HỌA PHƢƠNG THỨC PHÁ HỦY Bài toán: Hãy khai báo định nghĩa phương thức phá hủy cho lớp đối tượng CPhanSo Khai báo lớp class CPhanSo { private: int tu; int mau; public: // Phương thức xử lý ~CPhanSo(); }; GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 20 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 2.2 VÍ DỤ MINH HỌA PHƢƠNG THỨC PHÁ HỦY Định nghĩa phương thức phá hủy CPhanSo::~CPhanSo() { return; } GV Nguyễn Sơn Hoàng Quốc ThS Nguyễn Tấn Trần Minh Khang CuuDuongThanCong.com Chương 05 - 21 https://fb.com/tailieudientucntt LTHĐT Khoa CNTT 2.3 HƢỚNG DẪN SỬ DỤNG Hãy cho biết đoạn chương trình sau có phương thức gọi thực Biết lớp đối tượng CPhanSo ta định nghĩa pttl phương thức phá hủy Đoạn chương trình 11 int x; 12 int y; 13 x = 5; 14 y = 7; 15 if (y > x) 16 { 17 CPhanSo a; 18 a.Nhap(); 19 a.Xuat(); 20.} 21 cout