Bài 5 Tính đa hình Polymorphism)
Số trang: 5
Loại file: doc
Dung lượng: 52.00 KB
Lượt xem: 11
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:
Phươngthứccủalớpchakhithựchiệnsẽđượcthaythếbằngmộtphươngthứccủalớpconthì.phươngthứcnàygọilàcótínhđahình.Tínhđahìnhgiúpchoviệclậptrìnhđơngiảnvàdễmởrộng..Đểcàiđặtphươngthứccótínhđahìnhtadùngphươngthứcảovàphươngthứcthuầnảo.
Nội dung trích xuất từ tài liệu:
Bài 5 Tính đa hình Polymorphism)BÀI5:TÍNHĐAHÌNH(Polymorphism)1. KháiniệmPhươngthứccủalớpchakhithựchiệnsẽđượcthaythếbằngmộtphươngthứccủalớpconthìphươngthứcnàygọilàcótínhđahình.Tínhđahìnhgiúpchoviệclậptrìnhđơngiảnvàdễmởrộng.Đểcàiđặtphươngthứccótínhđahìnhtadùngphươngthứcảovàphươngthứcthuầnảo.2. Phươngthứcảo(virtualmethod) Phươngthứcảolàphươngthứcđượcđịnhnghĩaởlớpcơsở(lớpcha)màcáclớpdẫnxuất(lớpcon)muốnsửdụngphảiđịnhnghĩalại.Dùngtừkhoávirtualđểkhaibáophươngthứcảo:virtual(){…}Phươngthứckhởitạokhôngđượclàphươngthứcảonhưngphươngthứchủybỏcóthểlàphươngthứcảo.Dùngphươngthứcảochậmhơnphươngthứcthôngthườngvìkhithựchiệnmớiđượcxácđịnhcụthể.Vídụ:#includeclassA{ public: virtualvoidchao() //phươngthứcảo { cout }};classC:publicA{ public: voidchao() { coutchao(); //goichaocuaB Cc; pa=&c; pa>chao(); //goichaocuaC}Nhậnxét: - Phươngthứcchao()cótínhđahình:cùnglờigọipa>chao()nhưnglần1gọichaocuaA,lan2 gọichaocuaB,lan3goichaocuaC. - NếutronglớpB,CkhôngđịnhnghĩalạiphươngthứcchàothìcảbalầnđềugọichàocủaA. - Nếuphươngthứcchao()tronglớpAkhôngkhaibáovirtualthìphươngthứcchao()sẽkhôngcó tínhđahình,khiđócảbalầnđềugọichàocủaA. - Cóthểgánđịachỉcủađtthuộclớpconvàobiếncontrỏ,trỏtớiđtthuộclớpchanhưngkhông thểlàmngượclại(ápdụngnguyêntắc“congánvàocha”đốivớibiếnkiểuđốitượnghoặc biếnkiểucontrỏ,trỏtớiđốitượng)3. Phươngthứcthuầnảo,lớptrừutượngPhươngthứcthuầnảolàphươngthứcảonhưngkhôngcólệnh(phươngthứcrỗng).Phươngthứcthuầnảocódạng:virtual()=0; 2Lớpcóphươngthứcảogọilàlớptrừutượng(abstractclass).Nếumộtlớpthừakếlớptrừutượngmàkhôngđịnhnghĩalạiphươngthứcthuầnảothìlớpthừakếcũnglàlớptrừutượng.Lưuýlàkhôngđượctạođốitượngthuộclớptrừutượng.Thườngtachọnphươngthứcởlớpcha,màchưathểxácđịnhcáchthựchiện,làmphươngthứcthuầnảo.Ởlớpcontasẽđịnhnghĩalạiphươngthứcthuầnảo,đểxácđịnhcụthểcáchthứcthựchiện.Vídụ:Nhậpmộtdanhsáchgồmgiảngviênvàsinhviên,inradanhsáchnhữngngườiđượcthưởng.Biếtrằngđiềukiệnđượcthưởnglàgiảngviêncósốbàibáo>3,sinhviencóđiểmthitốtnghiệp>8.#includeclassnguoi{ charhoten[30]; public: virtualvoidnhap() //phươngthứcảo { cout { cout cout
Nội dung trích xuất từ tài liệu:
Bài 5 Tính đa hình Polymorphism)BÀI5:TÍNHĐAHÌNH(Polymorphism)1. KháiniệmPhươngthứccủalớpchakhithựchiệnsẽđượcthaythếbằngmộtphươngthứccủalớpconthìphươngthứcnàygọilàcótínhđahình.Tínhđahìnhgiúpchoviệclậptrìnhđơngiảnvàdễmởrộng.Đểcàiđặtphươngthứccótínhđahìnhtadùngphươngthứcảovàphươngthứcthuầnảo.2. Phươngthứcảo(virtualmethod) Phươngthứcảolàphươngthứcđượcđịnhnghĩaởlớpcơsở(lớpcha)màcáclớpdẫnxuất(lớpcon)muốnsửdụngphảiđịnhnghĩalại.Dùngtừkhoávirtualđểkhaibáophươngthứcảo:virtual(){…}Phươngthứckhởitạokhôngđượclàphươngthứcảonhưngphươngthứchủybỏcóthểlàphươngthứcảo.Dùngphươngthứcảochậmhơnphươngthứcthôngthườngvìkhithựchiệnmớiđượcxácđịnhcụthể.Vídụ:#includeclassA{ public: virtualvoidchao() //phươngthứcảo { cout }};classC:publicA{ public: voidchao() { coutchao(); //goichaocuaB Cc; pa=&c; pa>chao(); //goichaocuaC}Nhậnxét: - Phươngthứcchao()cótínhđahình:cùnglờigọipa>chao()nhưnglần1gọichaocuaA,lan2 gọichaocuaB,lan3goichaocuaC. - NếutronglớpB,CkhôngđịnhnghĩalạiphươngthứcchàothìcảbalầnđềugọichàocủaA. - Nếuphươngthứcchao()tronglớpAkhôngkhaibáovirtualthìphươngthứcchao()sẽkhôngcó tínhđahình,khiđócảbalầnđềugọichàocủaA. - Cóthểgánđịachỉcủađtthuộclớpconvàobiếncontrỏ,trỏtớiđtthuộclớpchanhưngkhông thểlàmngượclại(ápdụngnguyêntắc“congánvàocha”đốivớibiếnkiểuđốitượnghoặc biếnkiểucontrỏ,trỏtớiđốitượng)3. Phươngthứcthuầnảo,lớptrừutượngPhươngthứcthuầnảolàphươngthứcảonhưngkhôngcólệnh(phươngthứcrỗng).Phươngthứcthuầnảocódạng:virtual()=0; 2Lớpcóphươngthứcảogọilàlớptrừutượng(abstractclass).Nếumộtlớpthừakếlớptrừutượngmàkhôngđịnhnghĩalạiphươngthứcthuầnảothìlớpthừakếcũnglàlớptrừutượng.Lưuýlàkhôngđượctạođốitượngthuộclớptrừutượng.Thườngtachọnphươngthứcởlớpcha,màchưathểxácđịnhcáchthựchiện,làmphươngthứcthuầnảo.Ởlớpcontasẽđịnhnghĩalạiphươngthứcthuầnảo,đểxácđịnhcụthểcáchthứcthựchiện.Vídụ:Nhậpmộtdanhsáchgồmgiảngviênvàsinhviên,inradanhsáchnhữngngườiđượcthưởng.Biếtrằngđiềukiệnđượcthưởnglàgiảngviêncósốbàibáo>3,sinhviencóđiểmthitốtnghiệp>8.#includeclassnguoi{ charhoten[30]; public: virtualvoidnhap() //phươngthứcảo { cout { cout cout
Tìm kiếm theo từ khóa liên quan:
Lập trình căn bản Lập trình C++ Kỹ thuật phần mềm Tính đa hình Phương thức ảo Phương thức thuần ảoGợi ý tài liệu liên quan:
-
64 trang 238 0 0
-
114 trang 216 2 0
-
80 trang 191 0 0
-
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 155 0 0 -
Báo cáo nghiên cứu khoa học: Xây dựng ứng dụng quản lý sinh viên trên thiết bị di động
36 trang 126 0 0 -
Giáo trình Lập trình C căn bản - HanoiAptech Computer Education Center
136 trang 112 0 0 -
150 trang 98 0 0
-
124 trang 92 3 0
-
87 trang 70 0 0
-
8 trang 59 0 0