Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Template và điều khiển ngoại lệ
Nội dung xem thử
Mô tả chi tiết
Chöông 10
Template vaø ñieàu khieån ngoaïi leä
• Haøm template
• Lôùp template
• Ñieàu khieån ngoaïi leä
• Bieán tónh
• Töø khoaù extern vaø asm
• Haøm chuyeån kieåu
• Nhöõng khaùc bieät giöõa C vaø C++
Chöông 10 Template vaø ñieàu khieån ngoaïi leä 298
Chöông 10 Template vaø ñieàu khieån ngoaïi leä 299
I/ Haøm template
Haøm template (haøm maãu) ñònh nghiaõ moät daõy toång quaùt caùc taùc vuï ñöôïc duøng cho
nhieàu kieåu döõ lieäu khaùc nhau. Trong ñoù, kieåu döõ lieäu ñöôïc duøng seõ ñöôïc truyeàn ñeán
haøm döôùi daïng moät tham soá.
Vôùi cô cheá naøy, moät thuû tuïc coù theå ñöôïc duøng cho nhieàu kieåu döõ lieäu khaùc nhau.
Trong moân hoïc Caáu truùc döõ lieäu vaø thuaät toaùn, nhieàu giaûi thuaät gioáng nhau veà maët
luaän lyù, baát keå noù laøm vieäc vôùi kieåu döõ lieäu gì. Ví duï giaûi thuaät QuickSort laø gioáng
nhau, khoâng caàn bieát noù seõ aùp duïng cho daõy soá nguyeân hay daõy soá thöïc. Vaán ñeà laø ôû
choã döõ lieäu ñöôïc xöû lyù khaùc nhau.
Baèng caùch taïo ra haøm template, coù theå ñònh nghiaõ baûn chaát cuûa giaûi thuaät ñoäc laäp vôùi
kieåu döõ lieäu maø noù xöû lyù. Döïa vaøo haøm template, trình bieân dòch seõ töï ñoäng sinh ra
maõ chöông trình ñeå duøng cho moät kieåu döõ lieäu cuï theå naøo ñoù khi thöïc thi chöông
trình. Thöïc chaát laø vieäc taïo ra moät haøm template ñoàng nghiaõ vôùi vieäc taïo ra moät haøm
maø noù coù theå töï quaù taûi leân chính noù.
Khai baùo haøm template
template < class Ttype > ret_type func_name(parameter list)
{
// body of function
}
Töø khoaù template duøng ñeå taïo ra moät daïng maãu moâ taû hoaït ñoäng cuûa haøm vaø
nhöôøng cho trình bieân dòch ñieàn vaøo moät caùch chi tieát khi caàn.
Ttype laø teân hình thöùc cho kieåu döõ lieäu ñöôïc duøng beân trong haøm, noù seõ ñöôïc thay
theá bôûi moät kieåu döõ lieäu cuï theå khi trình bieân dòch sinh ra moät phieân baûn chi tieát cuûa
haøm.
Quaù trình taïo ra phieân baûn chi tieát cuûa haøm ñöôïc goïi laø quaù trình sinh haøm. Vieäc taïo
ra
baûn chi tieát cuûa haøm template ñöôïc goïi laø taïo ra ngay töùc khaéc (instantiating) moät
haøm. Noùi moät caùch khaùc laø moät haøm sinh ra phieân baûn duøng trong choác laùt cuûa haøm
template.