Danh mục

Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình Phương

Số trang: 30      Loại file: ppt      Dung lượng: 897.50 KB      Lượt xem: 12      Lượt tải: 0    
Jamona

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Chương này tiếp tục cung cấp các kiên thức về hàm nâng cao. Các nội dung cụ thể được trình bày trong chương này gồm: Tham số, khuôn mẫu hàm, nạp chồng hàm, nạp chồng hàm. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Hàm nâng cao (Phần 2) - ThS. Đặng Bình PhươngBộmônCôngnghệphầnmềmKhoaCôngnghệthôngtinTrườngĐạihọcKhoahọcTựnhiên KỸTHUẬTLẬPTRÌNH ThS.ĐặngBìnhPhương dbphuong@fit.hcmus.edu.vn HÀMNÂNGCAO (PHẦN2) 1 &&VCVC BB BB Nộidung 1 Tham số … 2 Khuôn mẫu hàm 3 Nạp chồng hàm 4 Nạp chồng toán tử Hàmnângcao(phần2) 2 &&VCVC BB BB Thamsố…  Khaibáo (, …) { … }  Ýnghĩa  Hàmcósốlượngthamsốkhôngbiếttrướcvà thườngcùngkiểu(khôngđượclàchar, unsignedchar,float).  Phảicóítnhất1thamsốbiếttrước.  Thamsố…đặtởcuốicùng. Hàmnângcao(phần2) 3 &&VCVC BB BB Thamsố…  Vídụ void XuatTong1(char *msg, int n, …) { // Các lệnh ở đây } void XuatTong2(char *msg, …) { // Các lệnh ở đây } int Tong(int a, …) { // Các lệnh ở đây } Hàmnângcao(phần2) 4 &&VCVC BB BB Truyxuấtdanhsáchthamsố…  Sửdụngkiểuvàcácmacrosau(stdarg.h)  va_list:kiểudữliệuchứacácthamsốcó trong…  va_start(va_listap,lastfix):macrothiếtlậpap chỉđếnthamsốđầutiêntrong…vớilastfixlà tênthamsốcốđịnhcuốicùng.  typeva_arg(va_listap,type):macrotrảvề thamsốcókiểutypetiếptheo.  va_end(va_listap):macrogiúpchohàmtrả vềgiátrịmộtcách“bìnhthường”. Hàmnângcao(phần2) 5 &&VCVC BB BB Thamsố…  Vídụ #include void XuatTong1(char *msg, int n, …) { va_list ap; va_start(ap, n); // ts cố định cuối cùng int value, s = 0; for (int i=0; i &&VCVC BB BB Thamsố…  Vídụ #include void XuatTong2(char *msg, …) { va_list ap; va_start(ap, msg); // ts cố định cuối int value, s = 0; while ((value = va_arg(ap, int)) != 0) { s = s + value; } va_end(ap); printf(“%s %d”, msg, s); } Hàmnângcao(phần2) 7 &&VCVC BB BB Thamsố…  Vídụ #include int Tong(int a, …) { va_list ap; va_start(ap, n); // ts cố định cuối cùng int value, s = a; while ((value = va_arg(ap, int)) != 0) { s = s + value; } va_end(ap); return s; } Hàmnângcao(phần2) 8 &&VCVC BB BB Khuônmẫuhàm  Viếthàmtìmsốnhỏnhấttrong2số  Viếtcáchàmkhácnhauđểtìmmin2sốint,2 sốlong,2sốfloat,2sốdouble,2phânsố…  Nhượcđiểm  Hàmbảnchấtgiốngnhaunhưngkháckiểu dữliệunênphảiviếtnhiềuhàmgiốngnhau.  Sửa1hàmphảisửanhữnghàmcònlại.  Khôngthểviếtđủcáchàmchomọitrường hợpdocònnhiềukiểudữliệukhác. Hàmnângcao(phần2) 9 &&VCVC BB BB Khuônmẫuhàm  Kháiniệm  Viếtmộthàmduynhấtnhưngcóthểsửdụng chonhiềukiểudữliệukhácnhau.  Cúpháp  tempate  Vídụ template hoặc template Hàmnângcao(phần2) 10 &&VCVC BB BB Khuônmẫuhàm  Vídụ template T min(T a, T b) { if (a < b) return a; return b; } void main() { int a = 2912, b = 1706; int m = min(a, b); printf(“So nho nhat la %d”, m); } Hàmnângcao(phần2) 11 &&VCVC BB BB Khuônmẫuhàm  Lợiíchcủaviệcsửdụngkhuônmẫuhàm  Dễviết,dochỉcầnviếthàmtổngquánhất.  Dễhiểu,dochỉquantâm ...

Tài liệu được xem nhiều: