Bài giảng Ngôn ngữ lập trình: Khuôn mẫu - Nguyễn Thị Phương Dung
lượt xem 2
download
Bài giảng Ngôn ngữ lập trình: Khuôn mẫu, cung cấp cho người học những kiến thức như: Khuôn mẫu hàm; Khuôn mẫu lớp; Khuôn mẫu và thừa kế. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Ngôn ngữ lập trình: Khuôn mẫu - Nguyễn Thị Phương Dung
- NGÔN NGỮ LẬP TRÌNH KHUÔN MẪU fit.hnue.edu.vn/~dungntp/NNLT 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 1
- Nội dung • Khuôn mẫu hàm • Khuôn mẫu lớp • Khuôn mẫu và thừa kế 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 2
- Xét ví dụ • Viết chương trình cho phép: – Nhập vào 2 số nguyên a, b. Thực hiện việc hoán đổi giá trị 2 biến a, b cho nhau. – Nhập vào 2 ký tự x, y. Thực hiện việc hoán đổi giá trị 2 biến x, y cho nhau. – Nhập vào 2 chuỗi str1, str2. Thực hiện việc hoán đổi giá trị 2 biến str1, str2 cho nhau. – …… 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 3
- => phải nạp chồng các hàm hoán đổi như sau 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 4
- Nếu yêu cầu hoán đổi 2 đối tượng khác nữa thì sao? 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 5
- Sử dụng Khuôn mẫu hàm 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 6
- Khuôn mẫu hàm • Là một mô hình (mẫu) giúp tạo định nghĩa chung cho những hàm Chỉ khác nhau về kiểu dữ liệu mà chúng thao tác. • Khuôn mẫu hàm khác với nạp chồng ở chỗ đoạn mã định nghĩa hàm chỉ cần viết MỘT LẦN 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 7
- Cú pháp của khuôn mẫu hàm • Sử dụng tiền tố khuôn mẫu template • Sau đó đến khai báo và định nghĩa hàm mà trong đó sử dụng T là một kiểu được thay thế cho bất kỳ 1 kiểu nào 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 8
- Như ví dụ trên • Thay tất cả các hàm hoán đổi bằng MỘT mẫu hàm như sau: 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 9
- Ví dụ • Lúc này trong hàm main gọi: – doicho(a, b) thì T sẽ được hiểu là kiểu int – doicho(a1, b1) thì T sẽ được hiểu là kiểu bool – doicho(a2, b2) thì T sẽ được hiểu là kiểu string 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 10
- Cách thức hoạt động của khuôn mẫu • Khi gọi một khuôn mẫu hàm với một kiểu dữ liệu, trình biên dịch sẽ tạo một định nghĩa hàm thực sự từ khuôn mẫu này dựa theo kiểu dữ liệu của tham số • Khuôn mẫu hàm không sử dụng bộ nhớ • Mã thực sự chỉ được tạo khi tên khuôn mẫu được gọi 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 11
- Cách thức hoạt động của khuôn mẫu • Mọi kiểu dữ liệu chỉ định trong khuôn mẫu hàm phải được dùng bên trong thân của khuôn mẫu hàm • Lời gọi hàm phải truyền đầy đủ tham số (với kiểu dữ liệu) được chỉ định trong khuôn mẫu hàm 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 12
- Cách thức hoạt động của khuôn mẫu • Khuôn mẫu hàm có thể được nạp chồng với danh sách tham số khác nhau • Giống như các hàm thông thường, khuôn mẫu hàm phải được định nghĩa trước khi gọi 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 13
- Bài tập • Tạo khuôn mẫu hàm tìm max của 2 tham số. • Viết chương trình tìm max của 2 số nguyên, 2 số thực, 2 chuỗi. 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 14
- Khuôn mẫu lớp • Tương tự như khuôn mẫu hàm • Khuôn mẫu lớp được dùng để tạo ra một lớp khái quát hơn cho các kiểu của dữ liệu và các hàm thành phần 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 15
- Cú pháp định nghĩa khuôn mẫu lớp Tiền tố khuôn mẫu 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 16
- Ví dụ khuôn mẫu lớp • Tạo ra một lớp chứa 1 cặp đôi các giá trị kiểu T – Nếu T là int thì đối tượng của lớp này sẽ chứa 1 cặp 2 số nguyên – Nếu T là char thì đối tượng của lớp này sẽ chứa 1 cặp 2 ký tự – …. 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 17
- Khai báo khuôn mẫu lớp 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 18
- Định nghĩa các hàm thành viên • Giống như định nghĩa các hàm thành viên của các lớp thông thường • Chỉ khác ở chỗ nó là một khuôn mẫu hàm • => Cần chú ý: – Phải có tiền tố khuôn mẫu trước mỗi định nghĩa – Tên lớp trước toán tử phân giải phạm vi :: 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 19
- Sử dụng khuôn mẫu lớp • Khuôn mẫu lớp có thể được sử dụng thay thế cho bất kỳ chỗ nào sử dụng các kiểu chuẩn • Để tạo các đối tượng của lớp • Để làm tham số cho hàm 02/05/2018 Nguyễn Thị Phương Dung - Khoa CNTT - ĐHSPHN 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ lập trình Java căn bản
115 p | 350 | 104
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng Ngôn ngữ lập trình C# - Nguyễn Hồng Phương
409 p | 214 | 41
-
Bài giảng Ngôn ngữ lập trình ứng dụng: Phần 1 – ĐH CNTT&TT
45 p | 112 | 13
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình bậc cao - Th.S Đoàn Thị Thu Huyền
44 p | 150 | 10
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - TS. Nguyễn Thị Hiền
12 p | 62 | 9
-
Bài giảng Ngôn ngữ lập trình - Nguyễn Văn Linh
109 p | 118 | 8
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 1 - TS. Đỗ Đăng Khoa
53 p | 112 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ lập trình C: Chương 1 - PhD. Nguyễn Thị Huyền
12 p | 55 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 3: Lớp và đối tượng
52 p | 112 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++: Bài 4 - TS. Đỗ Đăng Khoa
40 p | 95 | 5
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 6: Mẫu (template)
27 p | 85 | 4
-
Bài giảng Ngôn ngữ lập trình: Bài 1 - Lý Anh Tuấn
30 p | 82 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn