Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
1,39 MB
Nội dung
.c om ng cu u du o ng th an co CHƢƠNG TEMPLATE, EXCEPTION CuuDuongThanCong.com https://fb.com/tailieudientucntt .c om Template Lập trình tổng quát Lập trình tổng quát C++ C++ template Khuôn mẫu hàm cu u du o ng th an co ng 11/13/2020 Khn mẫu lớp CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om Giới thiệu Ví dụ xét hàm hốn vị sau: du o ng th an co ng void swap ( int& a, int& b){ int temp; temp = a; a = b; b = temp; } u Nếu ta muốn thực công việc tương tự cho cu kiểu liệu khác, chẳng hạn float? 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om Giới thiệu Ví dụ khác: Ta định nghĩa lớp biểu diễn cấu co ng trúc ngăn xếp cho kiểu int cu u du o ng th an class Stack { public: Stack(); ~Stack(); void push ( const int& i); void pop ( int& i); bool isEmpty() const; // }; 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om Giới thiệu Khai báo định nghĩa Stack phụ thuộc co ng mức độ vào kiểu liệu int an Một số phương thức lấy tham số trả kiểu int th Nếu ta muốn tạo ngăn xếp cho kiểu liệu khác du o ng sao? Ta có nên định nghĩa lại hoàn toàn lớp Stack (kết cu u tạo nhiều lớp chẳng hạn IntStack, FloatStack,…) hay khơng? 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om Lập trình tổng quát Lập trình tổng quát phương pháp lập trình độc co ng lập với chi tiết biểu diễn liệu an Tư tưởng ta định nghĩa khái niệm không phụ th thuộc biểu diễn cụ thể nào, sau du o ng kiểu liệu thích hợp làm tham số Như số trường hợp, đưa chi tiết cu u kiểu liệu vào định nghĩa hàm lớp điều lợi 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om Lập trình tổng quát C Sử dụng trình tiền xử lý C co ng Trình tiền xử lý thực thay text trước dịch an Do đó, ta dùng #define để kiểu liệu ng th thay đổi chỗ cần du o #define TYPE int void swap(TYPE & a, TYPE & b) { cu u TYPE temp; temp = a; a = b; b = temp; } 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om Lập trình tổng quát C #define TYPE int ng void swap(TYPE & a, TYPE & b) { co TYPE temp; th an temp = a; a = b; b = temp; ng } du o Sử dụng trình tiền xử lý C cu u Nhàm chán dễ lỗi Chỉ cho phép định nghĩa chương trình 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om C++ Template Template (khuôn mẫu) chế thay cho ng phép tạo cấu trúc mà rõ kiểu ng th an co liệu từ đầu du o Từ khóa template dùng C++ để báo cu u cho trình biên dịch biết đoạn mã theo sau thao tác nhiều kiểu liệu chưa xác định 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt .c om C++ Template Từ khóa template theo sau cặp ng ngoặc nhọn chứa tên kiểu liệu tùy ý an co cung cấp ng th template cu u du o template Một lệnh template có hiệu khai báo sau 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng https://fb.com/tailieudientucntt 10 ... (bind) với phiên u sinh cu Nếu khơng, trình biên dịch sinh cài đặt swap() lấy hai tham số kiểu int - liên kết lời gọi hàm với phiên vừa sinh 13/11/2020 CuuDuongThanCong.com Lập trình hướng đối tượng