Danh mục

Bài giảng Phương pháp lập trình hướng đối tượng: Thành phần tĩnh - Ba vấn đề con trỏ

Số trang: 24      Loại file: ppt      Dung lượng: 960.00 KB      Lượt xem: 11      Lượt tải: 0    
Thư viện của tui

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng Phương pháp lập trình hướng đối tượng này trình bày các nội dung: 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), ba vấn đề con trỏ. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Phương pháp lập trình hướng đối tượng: Thành phần tĩnh - Ba vấn đề con trỏThành phần tĩnh,Ba vấn đề con trỏPhương pháp lập trình hướng đối tượng. 1Nội dung Thành phần tĩnh. Ba vấn đề con trỏ. Bài tập.Phương pháp lập trình hướng đối tượng. 2Nội dung Thành phần tĩnh. Ba vấn đề con trỏ. Bài tập.Phương pháp lập trình hướng đối tượng. 3Thà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.  Thành phần tĩnh (static members). Thuộc tính và phương thức tĩnh. Các đối tượng dùng chung. p1: PhanSo PhanSo Tử số 1 Tử số Mẫu số 2Thành phần dùng chung cho Mẫu số MỌI đối tượng của lớp!! Giá trị lớn nhất p2: PhanSo Giá trị nhỏ nhất Tử số 2 Mẫu số 3Phương pháp lập trình hướng đối tượng. 4Thành phần tĩnh Khai báo và sử dụng:  Dùng từ khóa static.  Truy xuất bằng toán tử ::. class PhanSo PhanSo::m_giaTriLN = 10000; { private: void main() static int m_giaTriLN; { public: PhanSo p1(1, 2); static int layGiaTriLN(); PhanSo p2(2, 3); private: int m_tuSo; int x1 = PhanSo::layGiaTriLN(); int m_mauSo; int x2 = p1.layGiaTriLN(); }; }Phương pháp lập trình hướng đối tượng. 5Nội dung Thành phần tĩnh. Ba vấn đề con trỏ. Bài tập.Phương pháp lập trình hướng đối tượng. 6Ba vấn đề con trỏ Ví dụ 1: class Array void main() { { private: Array a1(5); int m_size; … int *m_data; } public: Array(int size); }; Array::Array(int size) { m_size = size; m_data = new int[m_size]; }Phương pháp lập trình hướng đối tượng. 7Ba vấn đề con trỏ Vấn đề rò rỉ bộ nhớ:  Lớp có thuộc tính con trỏ.  Đối tượng của lớp bị hủy, bộ nhớ không thu hồi. a1: Array Rò Rò rỉrỉbộ bộ nhớ!! nhớ!! m_size 5 m_data 101 1 2 3 4 5 Phải dùng hàm hủy để dọn dẹp!!Phương pháp lập trình hướng đối tượng. 8Ba vấn đề con trỏ Ví dụ 1: class Array void main() { { private: Array a1(5); int m_size; … int *m_data; } public: Array(int size); ~Array(); }; Array::~Array() { delete m_data; }Phương pháp lập trình hướng đối tượng. 9Ba vấn đề con trỏ Ví dụ 2: class Array void main() { { private: Array a1(5); int m_size; Array a2(a1); int *m_data; … public: } Array(int size); ~Array(); };Phương pháp lập trình hướng đối tượng. 10Ba vấn đề con trỏ Vấn đề sao chép bộ nhớ (hdsc mặc định):  Hàm dựng sao chép mặc định sao chép giá trị từng thuộc tính. Dùng Dùngchung chung Mất Mấtbộ bộ nhớ!! nhớ!! bộ bộnhớ!! nhớ!! a1: Array a2: Array m_size 5 ...

Tài liệu được xem nhiều: