![Phân tích tư tưởng của nhân dân qua đoạn thơ: Những người vợ nhớ chồng… Những cuộc đời đã hóa sông núi ta trong Đất nước của Nguyễn Khoa Điềm](https://timtailieu.net/upload/document/136415/phan-tich-tu-tuong-cua-nhan-dan-qua-doan-tho-039-039-nhung-nguoi-vo-nho-chong-nhung-cuoc-doi-da-hoa-song-nui-ta-039-039-trong-dat-nuoc-cua-nguyen-khoa-136415.jpg)
Bài giảng Kỹ thuật lập trình: Bài 11 - TS. Đào Trung Kiên
Số trang: 20
Loại file: pdf
Dung lượng: 545.55 KB
Lượt xem: 8
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật lập trình: Bài 11 do TS. Đào Trung Kiên biên soạn trình bày các nội dung sau: Khuôn mẫu hàm, định nghĩa hàm khái quát, gọi hàm khái quát, chồng hàm khái quát, cá biệt hoá hàm khái quát, khuôn mẫu lớp, phương thức bên ngoài khuôn mẫu lớp,...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Bài 11 - TS. Đào Trung KiênChapter 11: Lập trình khái quát(Generic programming)1EE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiKhuôn mẫu hàm(Function templates)2EE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiGeneralĐôi khi ta muốn viết một lần nhưng có thể tạo ra các hàmvới tham số thuộc nhiều kiểu khác nhau, thay vì phải viếtchồng nhiều hàm tương tự nhauint max(int a, int b){ return a>b ? a:b; }double max(double a, double b) { return a>b ? a:b; }float max(float a, float b){ return a>b ? a:b; } lập trình ở mức độ khái quát cao hơn: coi kiểu của biến cũng làtham số (type parameterization)Khuôn mẫu hàm (function template): là khái niệm giúpđịnh nghĩa những hàm mà chưa xác định kiểu của cáctham số3Có thể hiểu là viết gộp chung các hàm chồng giống nhau về mặtthuật toánKiểu của các tham số là tham số của khuôn mẫuEE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiĐịnh nghĩa hàm khái quátVí dụ 1:template void swap(T& a, T& b) {T c = a; a = b; b = c; }T được giả định là kiểu của các tham số a, b và biến cT sẽ được xác định khi gọi hàmT là tham số của khuôn mẫu, trong khi a, b là tham số của hàmVí dụ 2:template void push(Containter& s, Object o) {...}Có thể dùng từ khoá “class” thay vì “typename”4template void swap(T& a, T& b) {...}EE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiGọi hàm khái quátGọi với kiểu tường minh:max(a, b);max(x, y);swap(s1, s2);swap(p1, p2);push(l, st);Gọi với kiểu ngầm định:5int a,doublemax(a,max(x,max(a,b;x, y;b); // max(a, b);y); // max(x, y);x); // lỗiEE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Bài 11 - TS. Đào Trung KiênChapter 11: Lập trình khái quát(Generic programming)1EE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiKhuôn mẫu hàm(Function templates)2EE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiGeneralĐôi khi ta muốn viết một lần nhưng có thể tạo ra các hàmvới tham số thuộc nhiều kiểu khác nhau, thay vì phải viếtchồng nhiều hàm tương tự nhauint max(int a, int b){ return a>b ? a:b; }double max(double a, double b) { return a>b ? a:b; }float max(float a, float b){ return a>b ? a:b; } lập trình ở mức độ khái quát cao hơn: coi kiểu của biến cũng làtham số (type parameterization)Khuôn mẫu hàm (function template): là khái niệm giúpđịnh nghĩa những hàm mà chưa xác định kiểu của cáctham số3Có thể hiểu là viết gộp chung các hàm chồng giống nhau về mặtthuật toánKiểu của các tham số là tham số của khuôn mẫuEE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiĐịnh nghĩa hàm khái quátVí dụ 1:template void swap(T& a, T& b) {T c = a; a = b; b = c; }T được giả định là kiểu của các tham số a, b và biến cT sẽ được xác định khi gọi hàmT là tham số của khuôn mẫu, trong khi a, b là tham số của hàmVí dụ 2:template void push(Containter& s, Object o) {...}Có thể dùng từ khoá “class” thay vì “typename”4template void swap(T& a, T& b) {...}EE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà NộiGọi hàm khái quátGọi với kiểu tường minh:max(a, b);max(x, y);swap(s1, s2);swap(p1, p2);push(l, st);Gọi với kiểu ngầm định:5int a,doublemax(a,max(x,max(a,b;x, y;b); // max(a, b);y); // max(x, y);x); // lỗiEE3490: Kỹ thuật lập trình – HK1 2017/2018TS. Đào Trung Kiên – ĐH Bách khoa Hà Nội
Tìm kiếm theo từ khóa liên quan:
Bài giảng Kỹ thuật lập trình Kỹ thuật lập trình Lập trình khái quát Khuôn mẫu hàm Hàm bạn và lớp bạn Cá biệt hoá lớp khái quátTài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 281 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 224 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 207 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 178 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 156 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 122 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 111 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 108 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 98 0 0