Thành phần tĩnh◼ Thành phần của lớp class members: ◼ Thành phần đối tượng instance members.. Tóm tắt◼ Thành phần tĩnh: ◼ Thuộc tính và phương thức thuộc phạm vi lớp.. ◼ Các đối tượng dùn
Trang 1Thành phần tĩnh,
Ba vấn đề con trỏ
Trang 2Nội dung
◼ Thành phần tĩnh.
◼ Ba vấn đề con trỏ.
◼ Bài tập.
Trang 3Nội dung
◼ Ba vấn đề con trỏ.
◼ Bài tập.
Trang 4Thành phần tĩnh
◼ Thành phần của lớp (class members):
◼ Thành phần đối tượng (instance members).
➢ Thuộc tính và phương thức thông thường
➢ Mỗi đối tượng có bản sao riêng
Trang 5}
Trang 6Nội dung
◼ Thành phần tĩnh.
◼ Bài tập.
Trang 8Rò rỉ bộ nhớ!!
5
Trang 9Array a1(5);
… }
Trang 11Dùng chung
bộ nhớ!! Mất bộ nhớ!!
Trang 14Rò rỉ bộ nhớ!!
Dùng chung
Trang 15Array & Array::operator =(const Array &a){ delete m_data;
m_size = a.m_size;
m_data = new int[m_size];
for (int i = 0; i < m_size; i++)
m_data[ i ] = a.m_data[ i ];
return *this;
}
Trang 16Ba vấn đề con trỏ
◼ Dr Guru khuyên: luật “ba ông lớn”
◼ Lớp có thuộc tính con trỏ, phải luôn kèm theo:
➢ Hàm hủy: thu hồi bộ nhớ
Trang 17Tóm tắt
◼ Thành phần tĩnh:
◼ Thuộc tính và phương thức thuộc phạm vi lớp.
◼ Các đối tượng dùng chung thành phần tĩnh của lớp.
◼ Phương thức tĩnh chỉ truy xuất được thành phần tĩnh.
Trang 18Nội dung
◼ Thành phần tĩnh.
◼ Ba vấn đề con trỏ.
Trang 19Bài tập
◼ Bài tập 5.1:
Dùng thành phần tĩnh để xây dựng bộ đếm đối tượng cho lớp Time
(Gợi ý)
◼ Khai báo thuộc tính tĩnh lưu số đối tượng được tạo ra
◼ Tăng giá trị thuộc tính này khi khởi tạo đối tượng
◼ Giảm giá trị thuộc tính này khi hủy đối tượng
◼ Xây dựng phương thức tĩnh để truy xuất thuộc tính này
Trang 20Bài tập
◼ Bài tập 5.2:
Bổ sung vào lớp Date phương thức tĩnh cho phép tạo đối tượng từ
chuỗi “dd/MM/yyyy” cho trước
(Gợi ý)
◼ Phân tích chuỗi “dd/MM/yyyy” ra thành ngày, tháng, năm
◼ Khởi tạo đối tượng từ ngày, tháng, năm vừa phân tích
◼ Trả về đối tượng vừa tạo
Trang 21Bài tập
◼ Bài tập 5.3:
Xây dựng lớp đa thức có những phương thức sau:
(Nhóm tạo hủy)
◼ Khởi tạo mặc định đa thức = 0
◼ Khởi tạo với bậc và mảng hệ số cho trước
◼ Khởi tạo từ một đối tượng đa thức khác
◼ Hủy đa thức, thu hồi bộ nhớ
(Nhóm truy xuất thông tin)
◼ Lấy bậc đa thức
◼ Lấy hệ số tại bậc nào đó
Trang 23Bài tập
◼ Bài tập 5.4:
Xây dựng lớp chuỗi có những phương thức sau:
(Nhóm tạo hủy)
◼ Khởi tạo mặc định chuỗi rỗng
◼ Khởi tạo với từ chuỗi ký tự cho trước
◼ Khởi tạo từ một đối tượng chuỗi khác
◼ Hủy chuỗi, thu hồi bộ nhớ
(Nhóm truy xuất thông tin)
◼ Lấy chiều dài chuỗi
Trang 25◼ Thời gian: 17h00 18/09/2017