Chương 6: Mẫu (template)
Số trang: 27
Loại file: ppt
Dung lượng: 295.50 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
hái niệm Mẫu (template): Là một kỹ thuật cho phép một thành phần chỉ cần được định nghĩa một lần hoặc một số ít lần, nhưng có thể được sử dụng lại nhiều lần cho nhiều đối tượng khác Là kỹ thuật cho phép tham số hóa kiểu dữ liệu; như cho phép định nghĩa cấu trúc Stack, với T là tham số kiểu, ...
Nội dung trích xuất từ tài liệu:
Chương 6: Mẫu (template)Phần 2: Ngôn ngữ lậptrình C++ Chương 6: Mẫu (template)Các nội dung chính Giới thiệu1. Mẫu hàm2. Mẫu lớp3. 21. Giới thiệu Khái niệm Mẫu (template): Là một kỹ thuật cho phép một thành phần chỉ cần được định nghĩa một lần hoặc một số ít lần, nhưng có thể được sử dụng lại nhiều lần cho nhiều đối tượng khác Là kỹ thuật cho phép tham số hóa kiểu dữ liệu; như cho phép định nghĩa cấu trúc Stack, với T là tham số kiểu, đại diện cho kiểu DL của các phần tử của Stack. Sau đó T có thể được thay thế bằng một kiểu DL cụ thể, ví dụ int, và C++ sẽ tự động tạo ra code để định nghĩa Stack Nó có thể dùng để thay thế cho việc định nghĩa chồng hàm Trong C++, các thành phần mà ta có thể tạo Mẫu là Hàm và Lớp 32. Mẫu hàm Khái niệm mẫu hàm Tạo mẫu hàm Sử dụng mẫu hàm 4Khái niệm mẫu hàm Là hàm mà khi định nghĩa có sử dụng một hoặc nhiều mẫu Mẫu hàm được dùng để cho phép định nghĩa hàm một lần, nhưng có thể được gọi nhiều lần với tham số là các kiểu dữ liệu khác nhau template int i, j; char a,b; void swap (T &x, T &y){ float x, y; T z = x; swap(i, j); x = y; swap(a, b); y= z; swap(x, y); } 5Tạo một mẫu hàm Cú pháp Khai báo tên mẫu Một mẫu hàm có thể sử dụng một template void swap1(T &x, T &y){ hoặc nhiều tên T z = x; mẫ u x = y; y= z; } Tên mẫu sẽ được sử dụng trongphần đầu và/hoặc trong thân hàm 6Tạo một mẫu hàm Mẫu hàm có hai tên mẫu template void swap2 (T &x, U &y){ T z = x; x = (T) y; y= (U) z; } 7Sử dụng mẫu hàm Việc gọi mẫu hàm cũng giống như gọi hàm thông thường. Hàm được gọi này, khi đó được gọi là hàm thể hiện Khi gọi hàm mẫu, thì tùy theo kiểu dữ liệu của hàm thể hiện, mà chương trình dịch sẽ tự động tạo ra định nghĩa phù hợp cho hàm này. 8 Ví dụ áp dụng mẫu hàm 9. int main(int argc, char* argv[]) { 10. int i=20,j=30;1. #include 11. char c1=A,c2=B;2. using namespace std; 12. float x=20.15, y=35.5; //Gọi mẫu hàm 13. //Định nghĩa mẫu hàm3. 14. swap1(i,j);4. template 15. swap1(c1,c2);5. void swap1(T &a,T &b) { 16. swap1(x,y);6. T c; 17. coutVí dụ áp dụng mẫu hàm Kết quả chạy chương trình trên Output i=30 j=20 c1=B c2=A x=35.5 y=20.15 10Mẫu hàm và sự chồng hàm Mẫu hàm là một công cụ hỗ trợ cho việc chồng hàm, chứ không hoàn toàn thay thế được cho chồng hàm Ví dụ hàm swap1 ở trên không thực hiện được việc hoán đổi 2 chuỗi ký tự, khi đó ta phải chồng hàm này. 111. #include 1.2. #include 3. using namespace std; 15. int main(int argc, char **argv) 16. { //Định nghĩa mẫu hàm4. 17. int i=10,j=20;5. template 18. swap1(i,j);6. void swap1(T &a,T &b) { 19. coutKết quả chạy chương trình Output i=20; j=10 Name 1: Mission Impossible Name 2: Gone With The Wind 133. Mẫu lớp Khái niệm mẫu lớp Tạo mẫu lớp Sử dụng mẫu lớp 14Khái niệm mẫu lớp Là lớp mà khi định nghĩa có sử dụng một hoặc nhiều mẫ u Mẫu lớp được dùng để cho phép định nghĩa lớp một lần, nhưng có thể tạo ra nhiều lớp khác nhau với tham s ố là các kiểu dữ liệu khác nhau template class Stack { typedef Stack IntStack; Stack() ; typedef Stack FloatStack; ~Stack() ; typedef Stack StringStack; int push(const T& x); int pop(T& x) ; IntStack s1; int isEmpty() const; FloatStack s2; int isFull() const; }; 15Tạo mẫu lớp Cú pháp: Khai báo tên mẫu template class Stack { Stack() ; ~Stack() ; int push(const T&); int pop(T&) ; T* top; }; Tên mẫu sẽ được sử dụng trong thân lớp cho các thành phần dữ liệu và các hàm thành viên 16Sử dụng mẫu lớp Lớp thể hiện: là lớp được tạo ra từ mẫu lớp ...
Nội dung trích xuất từ tài liệu:
Chương 6: Mẫu (template)Phần 2: Ngôn ngữ lậptrình C++ Chương 6: Mẫu (template)Các nội dung chính Giới thiệu1. Mẫu hàm2. Mẫu lớp3. 21. Giới thiệu Khái niệm Mẫu (template): Là một kỹ thuật cho phép một thành phần chỉ cần được định nghĩa một lần hoặc một số ít lần, nhưng có thể được sử dụng lại nhiều lần cho nhiều đối tượng khác Là kỹ thuật cho phép tham số hóa kiểu dữ liệu; như cho phép định nghĩa cấu trúc Stack, với T là tham số kiểu, đại diện cho kiểu DL của các phần tử của Stack. Sau đó T có thể được thay thế bằng một kiểu DL cụ thể, ví dụ int, và C++ sẽ tự động tạo ra code để định nghĩa Stack Nó có thể dùng để thay thế cho việc định nghĩa chồng hàm Trong C++, các thành phần mà ta có thể tạo Mẫu là Hàm và Lớp 32. Mẫu hàm Khái niệm mẫu hàm Tạo mẫu hàm Sử dụng mẫu hàm 4Khái niệm mẫu hàm Là hàm mà khi định nghĩa có sử dụng một hoặc nhiều mẫu Mẫu hàm được dùng để cho phép định nghĩa hàm một lần, nhưng có thể được gọi nhiều lần với tham số là các kiểu dữ liệu khác nhau template int i, j; char a,b; void swap (T &x, T &y){ float x, y; T z = x; swap(i, j); x = y; swap(a, b); y= z; swap(x, y); } 5Tạo một mẫu hàm Cú pháp Khai báo tên mẫu Một mẫu hàm có thể sử dụng một template void swap1(T &x, T &y){ hoặc nhiều tên T z = x; mẫ u x = y; y= z; } Tên mẫu sẽ được sử dụng trongphần đầu và/hoặc trong thân hàm 6Tạo một mẫu hàm Mẫu hàm có hai tên mẫu template void swap2 (T &x, U &y){ T z = x; x = (T) y; y= (U) z; } 7Sử dụng mẫu hàm Việc gọi mẫu hàm cũng giống như gọi hàm thông thường. Hàm được gọi này, khi đó được gọi là hàm thể hiện Khi gọi hàm mẫu, thì tùy theo kiểu dữ liệu của hàm thể hiện, mà chương trình dịch sẽ tự động tạo ra định nghĩa phù hợp cho hàm này. 8 Ví dụ áp dụng mẫu hàm 9. int main(int argc, char* argv[]) { 10. int i=20,j=30;1. #include 11. char c1=A,c2=B;2. using namespace std; 12. float x=20.15, y=35.5; //Gọi mẫu hàm 13. //Định nghĩa mẫu hàm3. 14. swap1(i,j);4. template 15. swap1(c1,c2);5. void swap1(T &a,T &b) { 16. swap1(x,y);6. T c; 17. coutVí dụ áp dụng mẫu hàm Kết quả chạy chương trình trên Output i=30 j=20 c1=B c2=A x=35.5 y=20.15 10Mẫu hàm và sự chồng hàm Mẫu hàm là một công cụ hỗ trợ cho việc chồng hàm, chứ không hoàn toàn thay thế được cho chồng hàm Ví dụ hàm swap1 ở trên không thực hiện được việc hoán đổi 2 chuỗi ký tự, khi đó ta phải chồng hàm này. 111. #include 1.2. #include 3. using namespace std; 15. int main(int argc, char **argv) 16. { //Định nghĩa mẫu hàm4. 17. int i=10,j=20;5. template 18. swap1(i,j);6. void swap1(T &a,T &b) { 19. coutKết quả chạy chương trình Output i=20; j=10 Name 1: Mission Impossible Name 2: Gone With The Wind 133. Mẫu lớp Khái niệm mẫu lớp Tạo mẫu lớp Sử dụng mẫu lớp 14Khái niệm mẫu lớp Là lớp mà khi định nghĩa có sử dụng một hoặc nhiều mẫ u Mẫu lớp được dùng để cho phép định nghĩa lớp một lần, nhưng có thể tạo ra nhiều lớp khác nhau với tham s ố là các kiểu dữ liệu khác nhau template class Stack { typedef Stack IntStack; Stack() ; typedef Stack FloatStack; ~Stack() ; typedef Stack StringStack; int push(const T& x); int pop(T& x) ; IntStack s1; int isEmpty() const; FloatStack s2; int isFull() const; }; 15Tạo mẫu lớp Cú pháp: Khai báo tên mẫu template class Stack { Stack() ; ~Stack() ; int push(const T&); int pop(T&) ; T* top; }; Tên mẫu sẽ được sử dụng trong thân lớp cho các thành phần dữ liệu và các hàm thành viên 16Sử dụng mẫu lớp Lớp thể hiện: là lớp được tạo ra từ mẫu lớp ...
Tìm kiếm theo từ khóa liên quan:
ngôn ngữ C++ kỹ thuật phần mềm phần mềm máy tính lập trình C++ lập trình căn bản ngôn ngữ lập trình thủ thuật lập trìnhGợi ý tài liệu liên quan:
-
Bài giảng Xử lý sự cố phần mềm - Bài 4 Xử lý sự cố sử dụng Internet
14 trang 339 0 0 -
Nhập môn Tin học căn bản: Phần 1
106 trang 329 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 275 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 265 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 265 0 0 -
64 trang 262 0 0
-
114 trang 240 2 0
-
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 232 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 225 0 0 -
80 trang 219 0 0