Bài giảng Lập trình hướng đối tượng: Bài 10 - Phạm Thị Bích Vân
Số trang: 12
Loại file: pptx
Dung lượng: 58.88 KB
Lượt xem: 12
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài 10 trình bày kiến thức về hàm và lớp template. Nội dung chính trong chương này gồm: hàm template, lớp template, Standard Template Library (STL), thành phần trong STL. 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 hướng đối tượng: Bài 10 - Phạm Thị Bích VânBài10:HàmvàlớpTemplate HàmTemplate• Xétvídụsau: Viếthàmlấytrịtuyệtđốicủamộtsố.Taviếtnhiềuhàmứngvớinhiềukiểudữliệukhácnhau.intMyAbs(intX){ returnX>=0?X:X;}longMyAbs(longX){ HàmTemplate• Thayvìviếtnhiềuhàmứngvớinhiềukiểudữ liệu.Tasẽviếtmộthàmtổngquátdùng Templatenhưsau:templateTMyAbs(Tx){ return(x>=0)?x:x;}Gọihàm: cout HàmTemplate• Cúpháp: ▫ Tấtcảcáchàmtemplateđịnhnghĩabắtđầuvới từkhóatemplatetheosaumộtdanhsáchcác thamsốhìnhthứcvớihàmtemplatevâyquanh trongcácngoặcnhọn() ▫ Mỗithamsốhìnhthứcphảiđượcđặttrướcbởi từkhóaclassnhư: templatehoặctemplate LớpTemplate• Lớptemplatecũngmangýtưởngnhưhàm tempale.• Vídụ:Địnhnghĩamộtlớptemplatestack. LớpTemplatetemplateclassStack{ private: intSize;//Kíchthướcstack intTop; T*StackPtr; public: ~Stack() { LớpTemplate• ĐịnhnghĩaphươngthứccủalớptemplatetemplateintStack::Push(constT&Item){ if(!IsFull()) { StackPtr[++Top]=Item; return1; LớpTemplate• Hàmmain… StackFloatStack(5); floatF=1.1; cout LớpTemplate• Chúý: ▫ Hàmthànhviênđịnhnghĩabênngoàilớp templatebắtđầuvớiphầnđầulàtemplate ▫ Vídụ:templateintStack::Push(constT&Item){…………….} STL• STL(StandardTemplateLibrary)làmộtbộthư việnvôcùnghữudụngcủaC++.• Dùngđểlàmviệcvớicáccấutrúcdữliệuphổ biếnnhưdanhsách,hàngđợi,ngănxếpvàcác phéptoánchủyếuvớicáccấutrúcdữliệunày nhưtìmkiếm,sắpxếp,truyxuất,thêm,xóa, sửa ThànhphầntrongSTL• Cáccontainer(cácbộlưutrữdữliệu): ▫ làcáccấutrúcdữliệuphổbiếnđãtemplatehóadùng đểlưutrữcáckiểudữliệukhácnhau ▫ Gồmhailoại: sequentialcontainer(cácbộlưutrữdữliệutuầntự)baogồm list,vectorvàdeque associativecontainer(cácbộlưutrữdữliệuliênkết)bao gồmmap,multimap,setvàmultiset.• iterator(cáccontrỏdữliệu)làcáccontrỏđểtrỏđếncác phầntửtrongcácbộlưutrữ.• Cácalgorithm(cácthuậttoánlưutrữdữliệu)làcáchàm phổbiếnđểlàmviệcvớicácbộlưutrữnhưthêm,xóa,sửa, ThànhphầntrongSTL• Cácfunctionobject(cácđốitượnghàm)làcáchàmvàphép toánphổbiếnđểlàmviệcvớicácphầntửđượclưutrữ cũngnhưcácbộlưutrữvàcácthuậttoánlưutrữnhưcộng, trừ,nhân,chia,sosánh.• Cácadapter(cácbộtươngthích)Cácadapterchialàm3loại ▫ containeradapter(cácbộtươngthíchlưutrữ)baogồmstack, queuevàpriority_queue ▫ iteratoradapter(cácbộtươngthíchcontrỏ) ▫ functionadapter(cácbộtươngthíchhàm)
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hướng đối tượng: Bài 10 - Phạm Thị Bích VânBài10:HàmvàlớpTemplate HàmTemplate• Xétvídụsau: Viếthàmlấytrịtuyệtđốicủamộtsố.Taviếtnhiềuhàmứngvớinhiềukiểudữliệukhácnhau.intMyAbs(intX){ returnX>=0?X:X;}longMyAbs(longX){ HàmTemplate• Thayvìviếtnhiềuhàmứngvớinhiềukiểudữ liệu.Tasẽviếtmộthàmtổngquátdùng Templatenhưsau:templateTMyAbs(Tx){ return(x>=0)?x:x;}Gọihàm: cout HàmTemplate• Cúpháp: ▫ Tấtcảcáchàmtemplateđịnhnghĩabắtđầuvới từkhóatemplatetheosaumộtdanhsáchcác thamsốhìnhthứcvớihàmtemplatevâyquanh trongcácngoặcnhọn() ▫ Mỗithamsốhìnhthứcphảiđượcđặttrướcbởi từkhóaclassnhư: templatehoặctemplate LớpTemplate• Lớptemplatecũngmangýtưởngnhưhàm tempale.• Vídụ:Địnhnghĩamộtlớptemplatestack. LớpTemplatetemplateclassStack{ private: intSize;//Kíchthướcstack intTop; T*StackPtr; public: ~Stack() { LớpTemplate• ĐịnhnghĩaphươngthứccủalớptemplatetemplateintStack::Push(constT&Item){ if(!IsFull()) { StackPtr[++Top]=Item; return1; LớpTemplate• Hàmmain… StackFloatStack(5); floatF=1.1; cout LớpTemplate• Chúý: ▫ Hàmthànhviênđịnhnghĩabênngoàilớp templatebắtđầuvớiphầnđầulàtemplate ▫ Vídụ:templateintStack::Push(constT&Item){…………….} STL• STL(StandardTemplateLibrary)làmộtbộthư việnvôcùnghữudụngcủaC++.• Dùngđểlàmviệcvớicáccấutrúcdữliệuphổ biếnnhưdanhsách,hàngđợi,ngănxếpvàcác phéptoánchủyếuvớicáccấutrúcdữliệunày nhưtìmkiếm,sắpxếp,truyxuất,thêm,xóa, sửa ThànhphầntrongSTL• Cáccontainer(cácbộlưutrữdữliệu): ▫ làcáccấutrúcdữliệuphổbiếnđãtemplatehóadùng đểlưutrữcáckiểudữliệukhácnhau ▫ Gồmhailoại: sequentialcontainer(cácbộlưutrữdữliệutuầntự)baogồm list,vectorvàdeque associativecontainer(cácbộlưutrữdữliệuliênkết)bao gồmmap,multimap,setvàmultiset.• iterator(cáccontrỏdữliệu)làcáccontrỏđểtrỏđếncác phầntửtrongcácbộlưutrữ.• Cácalgorithm(cácthuậttoánlưutrữdữliệu)làcáchàm phổbiếnđểlàmviệcvớicácbộlưutrữnhưthêm,xóa,sửa, ThànhphầntrongSTL• Cácfunctionobject(cácđốitượnghàm)làcáchàmvàphép toánphổbiếnđểlàmviệcvớicácphầntửđượclưutrữ cũngnhưcácbộlưutrữvàcácthuậttoánlưutrữnhưcộng, trừ,nhân,chia,sosánh.• Cácadapter(cácbộtươngthích)Cácadapterchialàm3loại ▫ containeradapter(cácbộtươngthíchlưutrữ)baogồmstack, queuevàpriority_queue ▫ iteratoradapter(cácbộtươngthíchcontrỏ) ▫ functionadapter(cácbộtươngthíchhàm)
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Object Oriented Programming Lớp template Hàm template Thành phần trong STLGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 253 0 0 -
101 trang 190 1 0
-
14 trang 127 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 110 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 93 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 90 0 0 -
265 trang 72 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 72 0 0 -
33 trang 57 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 49 0 0