Các tham số hình thức của một định nghĩa template được sử dụng để mô tả các kiểu của các tham số cho hàm, để mô tả kiểu trả về của hàm, và để khai báo các biến bên trong hàm.. Từ k[r]
Trang 11
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
CHƯƠNG 8 TEMPLATE
Nguyễn Hữu Thể
Trang 4Các hàm template
Các hàm đa năng hóa được sử dụng để thực hiện các thao tác
tương tự trên các kiểu khác nhau của dữ liệu
Ví dụ: hàm lấy trị tuyệt đối của một số
Trang 5template <class T1, class T2,…>
Các tham số hình thức của một định nghĩa template được sử dụng
để mô tả các kiểu của các tham số cho hàm, để mô tả kiểu trả về của hàm, và để khai báo các biến bên trong hàm
Từ khóa class sử dụng để mô tả các kiểu tham số của hàm
template
Trang 6Các hàm template
Khi đó, hàm trị tuyệt đối ở trên viết theo hàm template
Hàm template MyAbs() khai báo một tham số hình thức T cho
kiểu của một số T được tham khảo như một tham số kiểu
Trang 7Object-oriented programming 7
Ví dụ: template in các giá trị của mảng
Trang 8Ví dụ: template in các giá trị của mảng
Trang 9Object-oriented programming 9
Ví dụ: Hàm template có nhiều tham số
Trang 10Các lớp template
Lớp template cũng mang đầy đủ ý tưởng của hàm template
Các lớp template được gọi là các kiểu có tham số bởi vì chúng đòi hỏi một hoặc nhiều tham số để mô tả làm thế nào tùy chỉnh một lớp template chung để tạo thành một lớp template cụ thể
Ví dụ: cài đặt lớp template Stack
Trang 11Object-oriented programming 11
Các lớp template
Trang 12Các lớp template
Trang 13Object-oriented programming 13
Các lớp template
Trang 14Các lớp template
Trang 15 Bảo đảm cho chương trình không chấm dứt tức thời, đột ngột
hoặc nhảy tới đoạn mã thực hiện không đúng
Trang 16Các từ khóa try, catch và throw
Ba từ khóa này tạo nên một cơ chế cho phép các chương trình
thông báo với nhau về các vấn đề bất thường và nghiêm trọng
xảy ra
Trong đoạn mã của chúng ta có ba khối tham gia vào việc phát hiện exception:
Khối try đánh dấu đoạn mã mà chúng ta nghi ngờ có thể xảy
ra sai lầm khi chạy
Khối catch nằm sau khối try, chứa đoạn mã giải quyết vấn đề bất thường xảy ra gọi là exception handler
Lệnh throw: cho phép chúng ta nén ra bất cứ biến nào đặc
biệt (hoặc biểu thức gán) mà chúng ta muốn
Trang 18Ví dụ: try, catch và throw
Trang 19Object-oriented programming 19
Các tình huống xử lý exception
Khi một exception không bị bắt
Nếu một exception được ném ra trong trường hợp sau khối try không có exception handler không khớp
=>hàm terminate () được gọi nhằm kết thúc chương trình
Trang 20Các tình huống xử lý exception
Trang 21Object-oriented programming 21
Ném một exception trong hàm bất kỳ
Chúng ta có thể ném một exception từ trong bất kỳ hàm nào miễn
là hàm đó sẽ được gọi trong khối try
Trang 22Khối try bên trong hàm
Xử lý exception lúc chạy sinh bởi đoạn mã nào đó thuộc hàm
Trang 23Object-oriented programming 23
Bài tập
Bài 1: Viết hàm template trả về giá trị trung bình của một
mảng, các tham số hình thức của hàm này là tên mảng và kích thước mảng
Bài 2: Cài đặt hàng đợi template
Bài 3: Cài đặt lớp template dùng cho cây nhị phân tìm kiếm (BST)
Bài 4: Viết hàm template để sắp xếp kiểu dữ liệu bất kỳ