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.

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 1

Trang 1

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 2

Trang 2

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 3

Trang 3

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 4

Trang 4

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 5

Trang 5

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 6

Trang 6

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 7

Trang 7

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 8

Trang 8

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 9

Trang 9

Bài giảng Phương pháp lập trình hướng đối tượng - Bài: Template, thư viện C++ trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 24 trang Danh Thịnh 08/01/2024 900
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++

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:

  • pdfbai_giang_phuong_phap_lap_trinh_huong_doi_tuong_bai_template.pdf