Danh mục tài liệu

Bài giảng Lập trình: Chương 6 - Vũ Song Tùng

Số trang: 25      Loại file: pdf      Dung lượng: 367.57 KB      Lượt xem: 17      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:

Bài giảng Lập trình chương 6 trang bị cho người học những kiến thức cơ bản về lập trình tổng quát như: Khuôn mẫu hàm (function template), khuân mẫu lớp, thuật toán tổng quát. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình: Chương 6 - Vũ Song Tùng om .c Lập trình ng co anChương 6: Lập trình tổng quát th o ng du u cu 2/10/2017 CuuDuongThanCong.com https://fb.com/tailieudientucnttNội dung  6.1 Khuân mẫu hàm (Function template) om  6.2 Khuân mẫu lớp .c  6.3 Thuật toán tổng quát ng co an th o ng du u cuChương 5: Lập trình tổng quát 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt6.1 Khuân mẫu hàm  Ví dụ hàm tìm giá trị lớn nhất om a. Tìm max hai số nguyên int max(const int &a, const int &b){ .c return (a > b)? a: b; ng } co an b. Tìm max hai số thực th float max(const float &a, const float &b){ ng return (a > b)? a: b; o } du  Nhận xét: Các hàm tìm max của hai số chỉ khác nhau về kiểu dữ liệu, u thuật toán giống nhau. cu  Tương tự như vậy có rất nhiều hàm chỉ khác nhau về kiểu dữ liệu, không khác về thuật toán  Giải pháp: tổng quát hóa các hàm chỉ khác nhau về kiểu  khuôn mẫu hàmChương 5: Lập trình tổng quát 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt  Ví dụ tổng quát hóa hàm max Tham số khuôn mẫu template T max(const T &a,const T &b){ Sử dụng từ khóa om return (a > b)? a: b; class hoặc typename để khai báo tham số .c } khuôn mẫu ng  Khuôn mẫu hàm inline co template inline T max(const T &a,const T &b) { an return (a > b)? a : b; th } Compiler sẽ tạo một hàm theo khuôn mẫu ng  Sử dụng có dạng int max(const int&, const int&) o int max(5,7); du u cuChương 5: Lập trình tổng quát 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt  Ví dụ sử dụng void main() { int i1 = 1, i2 = 5; double d1 = 1.0, d2 = 2.0; om double d = max(d1,d2); // max(double,double) char c = max(c,a); // max(char, char) .c d = max(i1,d1); // error: ambiguous ng c = max(c,i1); // error: ambiguous d = max(d1,i1); // OK: explicit qualification co c = max(c,i1); // OK: explicit qualification } an Áp dụng cho complex? th ng class complex{ ...