Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++
Đặc điểm của Function Template:
Hàm tổng quát cho nhiều kiểu dữ liệu khác nhau.
Tham số hóa kiểu dữ liệu.
Kiểu cụ thể được quyết định khi gọi hàm.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++
1Phương pháp lập trình hướng đối tượng. Template, Thư viện C++ 2Phương pháp lập trình hướng đối tượng. Nội dung Function Template. Class Template. Thư viện C++. Bài tập. 3Phương pháp lập trình hướng đối tượng. Nội dung Function Template. Class Template. Thư viện C++. Bài tập. 4Phương pháp lập trình hướng đối tượng. Function Template Xét hàm tìm min giữa 2 số: int timMin(int a, int b) { return (a < b) ? a : b; } float timMin(float a, float b) { return (a < b) ? a : b; } PhanSo timMin(PhanSo a, PhanSo b) { return (a < b) ? a : b; } Tìm min hai số thực? Tìm min hai phân số? Có cách nào đơn giản hơn? Dùng Function Template!! 5Phương pháp lập trình hướng đối tượng. Function Template Hàm tìm min dùng Function Template: template T timMin(T a, T b) { return (a < b) ? a : b; } void main() { int a = 5, b = 3; int c = timMin(a, b); float d = timMin(1.5, 2.3); PhanSo p1(1, 2); PhanSo p2(1, 3); PhanSo p3 = timMin(p1, p2); } 6Phương pháp lập trình hướng đối tượng. Function Template Đặc điểm của Function Template: Hàm tổng quát cho nhiều kiểu dữ liệu khác nhau. Tham số hóa kiểu dữ liệu. Kiểu cụ thể được quyết định khi gọi hàm. Ghi chú: Từ khóa “class” có thể thay bằng “typename”. Phần khai báo và cài đặt đều có khai báo template. Phần cài đặt hàm phải nằm cùng file: Phần khai báo hàm. Phần gọi sử dụng hàm. 7Phương pháp lập trình hướng đối tượng. Nội dung Function Template. Class Template. Thư viện C++. Bài tập. 8Phương pháp lập trình hướng đối tượng. Class Template Xét lớp đối tượng Mang: class MangNguyen { private: int m_kichThuoc; int *m_duLieu; public: Mang(int kichThuoc); int layPhanTu(int viTri); }; class MangPhanSo { private: int m_kichThuoc; PhanSo *m_duLieu; public: Mang(int kichThuoc); PhanSo layPhanTu(int viTri); }; Mảng phân số? Có cách nào đơn giản hơn? Dùng Class Template!! 9Phương pháp lập trình hướng đối tượng. Class Template Lớp Mang dùng Class Template: template class Mang { private: int m_kichThuoc; T *m_duLieu; public: Mang(int kichThuoc); T layPhanTu(int viTri); }; void main() { Mang m1(10); int a = m1.layPhanTu(5); Mang m2(5); PhanSo p = m2.layPhanTu(2); } 10Phương pháp lập trình hướng đối tượng. Class Template Đặc điểm của Class Template: Lớp tổng quát cho nhiều kiểu dữ liệu khác nhau. Tham số hóa kiểu dữ liệu. Kiểu cụ thể được truyền vào khi tạo đối tượng. Ghi chú: Từ khóa “class” có thể thay bằng “typename”. Phần cài đặt lớp phải nằm cùng file: Phần khai báo lớp. Phần tạo và sử dụng đối tượng của lớp. Viết cài đặt bên trong lớp khi dùng Template. 11Phương pháp lập trình hướng đối tượng. Nội dung Function Template. Class Template. Thư viện C++. Bài tập. 12Phương pháp lập trình hướng đối tượng. Thư viện C++ Khái niệm thư viện: Tập hợp những lớp, hàm có sẵn giúp giải quyết công việc thường gặp. Bộ công cụng hữu ích của lập trình viên. Một vài thư viện C++: Thư viện chuẩn (C++ Standard Library). Thư viện boost. Thư viện MFC (Microsoft Foundation Classes). 13Phương pháp lập trình hướng đối tượng. Thư viện C++ Thư viện chuẩn: Thư viện cơ bản nhất của C++. Các lớp và hàm nằm trong namespace std. File Header không .h. Phân nhóm: Nhóm nhập xuất: iostream, iomanip, fstream, Nhóm STL. Thư viện chuẩn C: file header cxxx. 14Phương pháp lập trình hướng đối tượng. Thư viện C++ Thư viện STL (Standard Template Library): Một phần của thư viện chuẩn. Các lớp và hàm hỗ trợ lập trình với template. Phân nhóm: Nhóm container: vector, list, deque, set, Nhóm string: string, Nhóm iterator. 15Phương pháp lập trình hướng đối tượng. Thư viện C++ Lớp string: File header . Lớp đại diện cho các đối tượng chuỗi. Giải quyết 3 vấn đề con trỏ. Các phương thức chính: string(char *): khởi tạo từ một chuỗi ký tự. length(): lấy chiều dài chuỗi. Toán tử [ ]: lấy ký tự tại một vị trí nào đó. Toán tử >, =, <=, !=: so sánh theo thứ tự từ điển. Toán tử +, +=: nối chuỗi. find(char *): tìm chuỗi con. substr(int, int): lấy chuỗi con. 16Phương pháp lập trình hướng đối tượng. Thư viện C++ Ví dụ lớp string: void main() { string s1(“software”); string s2(“SoftWare”); if (s1 == s2) cout << “equal.” << endl; else cout << “not equal.” << endl; s2 = s1.substr(4, 4); cout << s2; string s3 = s1 + s2; cout << s3 << endl; } 17Phương pháp lập trình hướng đối tượng. Thư viện C++ Lớp vector: File header . Lớp mảng kiểu T. Giải quyết 3 vấn đề con trỏ. Các phương thức chính: vector(): khởi tạo mảng kiểu T. size(): lấy kích thước mảng. push_back(T): thêm phần tử vào cuối mảng. Toán tử [ ]: lấy phần tử tại một vị trí nào đó. 18Phương pháp lập trình hướng đối tượng. Thư viện C++ Ví dụ: void main() { vector v1; v1.push_back(1); v1.push_back(2); for (int i = 0; i < v1.size(); i++) cout << v1[i] << “ “; vector v2; v2.push_back(new PhanSo(2, 6)); v2[0]->rutGon(); } 19Phương pháp lập trình hướng đối tượng. Tóm tắt Template: Cách thức tham số hóa kiểu dữ liệu. Cho phép lập trình trên kiểu dữ liệu tổng quát. Function template: Hàm tổng quát cho nhiều kiểu dữ liệu khác nhau. Kiểu cụ thể được quyết định khi gọi hàm. Class template: Lớp tổng quát cho nhiều kiểu dữ liệu khác nhau. Kiểu cụ thể được truyền vào khi tạo đối tượng từ lớp. Phần cài đặt nằm cùng file: Phần khai báo. Phần sử dụng. 20Phương pháp lập trình hướng đối tượng. Tóm tắt Thư viện C++: Bộ công cụ hỗ trợ lập trình. Thư viện chuẩn: Thư viện STL. Thư viện boost. Thư viện MFC. 21Phương pháp lập trình hướng đối tượng. Nội dung Template. Thư viện C++. Bài tập. 22Phương pháp lập trình hướng đối tượng. Bài tập Bài tập 6.1: Liệt
File đính kèm:
- bai_giang_phuong_phap_lap_trinh_huong_doi_tuong_bai_template.pdf