1. Trang chủ
  2. » Giáo Dục - Đào Tạo

OOP 06 template and c library

24 70 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 3,71 MB

Nội dung

Template, Thư viện C++ Phươ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 Phươ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 Phương pháp lập trình hướng đối tượng Function Template ◼ Xét hàm tìm 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 hai số thực? Tìm hai phân số? Có cách đơn giản hơn? Dùng Function Template!! Phương pháp lập trình hướng đối tượng Function Template ◼ Hàm tìm 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); } Phương pháp lập trình hướng đối tượng Function Template ◼ Đặc điểm Function Template: Hàm tổng quát cho nhiều kiểu liệu khác ◼ Tham số hóa kiểu liệu ◼ Kiểu cụ thể định gọi hàm ◼ ◼ Ghi chú: Từ khóa “class” thay “typename” ◼ Phần khai báo cài đặt có khai báo template ◼ Phần cài đặt hàm phải nằm file: ◼ ➢ ➢ Phần khai báo hàm Phần gọi sử dụng hàm Phươ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 Phươ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: MangNguyen(int kichThuoc); int layPhanTu(int viTri); }; class MangPhanSo { private: int m_kichThuoc; PhanSo *m_duLieu; public: MangPhanSo(int kichThuoc); PhanSo layPhanTu(int viTri); }; Phương pháp lập trình hướng đối tượng Dùng Class Template!! Mảng phân số? Có cách đơn giản hơn? 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); }; Phương pháp lập trình hướng đối tượng void main() { Mang m1(10); int a = m1.layPhanTu(5); Mang m2(5); PhanSo p = m2.layPhanTu(2); } Class Template ◼ Đặc điểm Class Template: Lớp tổng quát cho nhiều kiểu liệu khác ◼ Tham số hóa kiểu liệu ◼ Kiểu cụ thể truyền vào tạo đối tượng ◼ ◼ Ghi chú: Từ khóa “class” thay “typename” ◼ Phần cài đặt lớp phải nằm file: ◼ ➢ ➢ Phần khai báo lớp Phần tạo sử dụng đối tượng lớp ➔ Viết cài đặt bên lớp dùng Template Phương pháp lập trình hướng đối tượng 10 Nội dung ◼ ◼ ◼ ◼ Function Template Class Template Thư viện C++ Bài tập Phương pháp lập trình hướng đối tượng 11 Thư viện C++ ◼ Khái niệm thư viện: Tập hợp lớp, hàm có sẵn giúp giải công việc thường gặp ◼ Bộ công cụng hữu ích 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) Phương pháp lập trình hướng đối tượng 12 Thư viện C++ ◼ Thư viện chuẩn: Thư viện C++ ◼ Các lớp hàm nằm 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 Phương pháp lập trình hướng đối tượng 13 Thư viện C++ ◼ Thư viện STL (Standard Template Library): Một phần thư viện chuẩn ◼ Các lớp 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 … Phương pháp lập trình hướng đối tượng 14 Thư viện C++ ◼ Lớp string: File header ◼ Lớp đại diện cho đối tượng chuỗi ◼ Giải vấn đề trỏ ◼ Các phương thức chính: ◼ ➢ ➢ ➢ ➢ ➢ ➢ ➢ string(char *): khởi tạo từ chuỗi ký tự length(): lấy chiều dài chuỗi Toán tử [ ]: lấy ký tự vị trí Tốn tử >, =,

Ngày đăng: 03/11/2019, 19:29

TỪ KHÓA LIÊN QUAN