Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
490,09 KB
Nội dung
Ch Ch −¬ −¬ ng ng 6 6 L L í í p p v v μ μ ph ph −¬ −¬ ng ng ph ph ¸ ¸ p p l l Ë Ë p p tr tr × × nh nh h h −í −í ng ng ® ® è è i i t t −î −î ng ng Bi ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 2 6.1 C++ v 6.1 C++ v à à ph ph ơ ơ ng ng ph ph á á p p l l ậ ậ p p tr tr ì ì nh nh h h ớ ớ ng ng đ đ ố ố i i t t ợ ợ ng ng 6.1.1 Tng quan v lptrỡnhhng i tng Lch s phỏt trin cỏc phng phỏp lptrỡnh Lptrỡnhtuyn tớnh: Lptrỡnhmỏytớnhthikỡu. Chng trỡnh nh (ớt dũng lnh), ngin. Lptrỡnhth tc: Phõn chia chng trỡnh thnh cỏc mụun. Giiquyt bi toỏn theo hng phõn tớch trờn xung (top down). Nysinhkhúkhn do ph thuc vo cutrỳcd liu. Lptrỡnhhng itng: Thit k xoay quanh d liu, gn kt d liu v hm x lý chỳng. Thit k chng trỡnh theo cỏch tip cn di lờn (bottom up). Cỏch tip cn bi toỏn gn vi thc t hn. Bi ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 3 6.1 C++ v 6.1 C++ v à à ph ph ơ ơ ng ng ph ph á á p p l l ậ ậ p p tr tr ì ì nh nh h h ớ ớ ng ng đ đ ố ố i i t t ợ ợ ng ng 6.1.1 Tng quan v lp trỡnh hng i tng Lptrỡnhhng itng Cỏc khỏi nim c s: i tng = d liu + phng thc. Lp : tp hp cỏc i tng cựng loi. Chng trỡnh l tp hp cỏc i tng, cỏc i tng trao i thụng tin qua phng thc. c im: D dng b sung d liu, phng thc, s dng li i tng. úng gúi d liu : che giu thụng tin ồ an ton mó. Tha k : d dng s dng li cỏc mụun chng trỡnh. a hỡnh: cỏc i tng cú th phn ng khỏc nhau tựy vo tng tỡnh hung c th. Th hin trong nhiu ngụn ng khỏc nhau : SIMULA, SmallTalk, C++, Java, hay ADA, EIFFEL, Bi ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 4 6.1 C++ v 6.1 C++ v à à ph ph ơ ơ ng ng ph ph á á p p l l ậ ậ p p tr tr ì ì nh nh h h ớ ớ ng ng đ đ ố ố i i t t ợ ợ ng ng 6.1.1 Tng quan v lp trỡnh hng i tng Lptrỡnhhng itng (tip) unhc im Loib mó lpli, nõng cao tớnh s dng li. An ton mó, d dng thitk, Thớch hp cho xõy dng cỏc h thng ln: lmvic theo quy trỡnh, d dngnõngcp, thunlitrongqunlý phctp, Nhc im: ũi hithigianthchinln, tnb nh. ng dng Thitk giao dinngis dng (GUI). Xõy dng cỏc h thng thụng tin phctpvhiuqu : cỏc h thng mụ hỡnh húa & mụ phng, cỏc h thng thigianthc, cỏc h thng song song v mng nron, cỏc h CAD/CAM, cỏc h CSDL HT, cỏc h TTNT, HCG, HTGQ, Bài ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 5 6.1 C++ v 6.1 C++ v µ µ ph ph −¬ −¬ ng ng ph ph ¸ ¸ p p l l Ë Ë p p tr tr × × nh nh h h −í −í ng ng ® ® è è i i t t −î −î ng ng 6.1.2 Lptrìnhhng đi tng trong C++ – C++: thêm kh nng lp trình HT vào C • C++: thahng ttcđimmnh caC – Là ngôn ng bao trùm lên C å thahng đy đ scmnh caC (ví d tính kh chuyn, tính mmdo, ). – C trong C++ có mtsđim khác so vi ANSI C: thay đi, thêm mi, citin å phù hphn å tng cng scmnh cho C. • C++: cài đt kh nng lp trình HT da trên khái nim lp – Lp bao gm các d liu thành phn (thuc tính) và các hàm thành phn (phng thc) å đóng gói d liu. – Thc cht lp là 1 kiu d liu do ngi dùng t đnh ngha. – Cho phép k tha các lp đã xây dng å đc đim quan trng ca lp trình HT. – Cho phép th hin tính đa hình trong tha k, đây cng là mt đc đim quan trng ca lp trình HT. Bài ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 6 6.1 C++ v 6.1 C++ v µ µ ph ph −¬ −¬ ng ng ph ph ¸ ¸ p p l l Ë Ë p p tr tr × × nh nh h h −í −í ng ng ® ® è è i i t t −î −î ng ng 6.1.2 Lp trình hng đi tng trong C++ – Lp trình HT trong C++: mt s đc đim cn chú ý • C++ là ngôn ng lai (không phi là ngôn ng HT thun khit) <> SmallTalk, Java, … – So vi lp trình HT thun túy, cài đt c th ca đi tng trong C++ linh đng hn. – C++ không bt buc đóng gói d liu å nhc đim chính ca C++. • C++ phù hp cho ngi mi hc lp trình: có th s dng c tính cu trúc và đi tng trong chng trình. Bài ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 7 6.2 6.2 L L í í p p v v µ µ ® ® è è i i t t −î −î ng ng 6.2.1 Khai báo và đnh nghalp – Cú pháp khai báo class tên_lp{ private: //khai báo các thành phn riêng ca lp [d liu thành phn] [đnh ngha hàm thành phn hoc nguyên mu hàm] public: //khai báo các thành phn công cng ca lp [d liu thành phn] [đnh ngha hàm thành phn hoc nguyên mu hàm] }; /*nh ngha các hàm thành phncha đc đnh nghabên trong khai báo lp */ [Hàm thành phn đnh ngha ngoài lp] • Thct cho thy, có nhiukiu khai báo và các kiu đó đucóth chunhóav dng trên. Bài ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 8 6.2 6.2 L L í í p p v v µ µ ® ® è è i i t t −î −î ng ng 6.2.1 Khai báo và đnh ngha lp – Cú pháp khai báo (tip) • Khai báo đitng – Cú pháp: tên_lp tên_đtng; – Có th xem lplàmtkiud liu: • To đitng ~ khai báo bin. • Mi đitng là mtth hincalp. – itng bao gmtp các bintng ng vi tên và kiucacác DLTP. – Các đitng chung nhau đnh ngha hàm thành phn. – Có th khai báo mng các đitng nh mng thông thng. – Có th dùng các phép toán new và delete đ cpphátvàgii phóng b nh cho đitng. • Phép toán new s tr v mtcon trđitng. Bài ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 9 6.2 6.2 L L í í p p v v µ µ ® ® è è i i t t −î −î ng ng 6.2.1 Khai báo và đnh ngha lp – Cú pháp khai báo (tip) • Con trđitng – Cú pháp khai báo : tên_lp *tên_con_tr_đtng; – Con trđitng có th nhn giá tr là đach ca đitng cùng kiulp å có th gi các thành phn(d liu, hàm) calp thông qua con tr bng cách s dng phép toán “->”. • Tham chiu đitng – Cú pháp khai báo : tên_lp &tên_thchiu_đtng = tên_đtng_đã_có; – Mtthamchiu đitng ch có ý ngha khi nó tham chiutimt đi tng nào đó đã đc khai báo trc đó. • Chú ý: con tr hoc tham chiu không philàmtth hin (instance) calp. Bài ging C++. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 6.2 6.2 L L í í p p v v µ µ ® ® è è i i t t −î −î ng ng 6.2.1 Khai báo và đnh ngha lp – Các chi tit trong khai báo lp • D liu thành phn (thuc tính) – DLTP là d liu gn vi lp (đi tng). • D liu thành phn (DLTP) là thutng caC++, cònthuctínhlà thutng trong lp trình HT nói chung. – DLTP có th là binkius s, kiuphchphoc đitng thuclp nào đó. – DLTP không th là đitng thucbnthânlp đang đc đnh ngha nhng có th là con tr hoc tham chiuti đitng calp đó. – Có th s dng t khoá static cho DLTP. – Không đcs dng các t khoá auto, register, extern cho DLTP. – Không th khi đu giá tr cho DLTP. [...]... • L p và c u tr c trong C+ + – C u tr c trong C+ + ch c m t i m kh c duy nh t v i l p: thu c tính truy xu t ng m nh là public thay vì private – T t c c c tính ch t, kh n ng… c n l i c a l p u c th áp d ng cho c u tr c V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 7/11/2008 6. 2 Líp vµ ®èi t îng 6. 2.2 Thao t c v i it ng – Truy nh p vào thành ph n c a it ng • Truy nh p d li u thành ph n – Ch c th truy... t ng ích m t c ch t ng ng (không k ó là c c thành ph n public hay private) • Chú ý trong phép gán c c it ng ch a DLTP ng: – Vi c sao chép DLTP không liên quan n c c vùng d li u cc p phát ng (“sao chép b m t”) å nh h ng n vi c qu n lý c p phát ng – Vùng nh ng c a i t ng ích bây gi s c truy nh p b i c c HTP c a c i t ng ngu n và ích å tính “riêng t ” d li u c a i t ng b vi ph m – Vùng nh ng tr c ây trong... ng, c c i t ng (thu c cùng l p) c DLTP riêng (s h u vùng nh d li u kh c nhau) – å không chia s c d li u gi a chúng – chia s d li u, c th s d ng DLTP t nh • DLTP t nh c khai báo b ng c ch s d ng t khoá static – DLTP t nh c c p phát vùng nh c nh å t n t i ngay c khi ch a khai báo i t ng nào (~ c l p v i i t ng) – Trong toàn b l p, ch c m t th hi n duy nh t c a DLTP t nh å dùng chung cho t t c c c i... ây trong i t ng ngu n (n u c ) bây gi không th ki m soát c n a V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 7/11/2008 6. 2 Líp vµ ®èi t îng 6. 2.3 C c v n kh c v hàm thành ph n – Nói thêm v hàm thành ph n • nh ngh a ch ng c c hàm thành ph n – – nh ngh a ch ng hàm ã c c p trong ch ng 4 nh ngh a ch ng hàm c ng áp d ng c cho c c HTP Khi ó HTP c phép g i t i c c HTP kh c, th m chí trùng tên • Tham s v i... ng C+ + 7/11/2008 6. 2 Líp vµ ®èi t îng 6. 2.1 Khai báo và nh ngh a l p – C c chi ti t trong khai báo l p (ti p) • Thu c tính truy xu t c a c c thành ph n (ti p) – Ngoài public và private, c n c t khoá protected dùng ch nh tr ng thái c a c c thành ph n trong m t l p – T khoá protected s c c p k h n trong ch ng 7 (Th a k và a hình) – Trong ph m vi c a l p hi n t i m t thành ph n protected c tính ch t... HTP c quy n truy nh p n thành ph n private c a nó (t c là i t ng thu c l p ch a hàm) it ng g i • Truy nh p n c c thành ph n private trong c c tham s là t ng truy n cho HTTP: i – HTP c quy n truy nh p n t t c thành ph n private c a i t ng, tham chi u i t ng hay con tr i t ng c ng ki u l p khi c dùng là tham s hình th c c a nó • Dùng it ng nh giá tr tr v c a HTP c ng l p: – HTP c th truy nh p n c c. .. t, l p b n, … Bài gi ng C+ + 7/11/2008 6. 2 Líp vµ ®èi t îng 6. 2.1 Khai báo và nh ngh a l p – C c chi ti t trong khai báo l p (ti p) • Thu c tính truy xu t c a c c thành ph n – Thu c tính private : thu c tính này th hi n m t trong c c c tr ng c a l p trình H T là che gi u thông tin Thành ph n private ch c truy xu t bên trong ph m vi l p – Thu c tính public: thành ph n public c th truy xu t trong b t... public • Hàm t o không c k t qu tr v å không c khai báo ki u i u này là do hàm t o c g i khi t o i t ng m i (chú ý v c pháp!) – Trong tr ng h p mu n s d ng giá tr tr v ki m soát l i, ta s d ng c ch x lý l i (s c c p trong ph n ghi chú ch ng) – • Hàm t o c th c ho c không c tham s • Hàm t o c th khai báo v i c c tham s c giá tr ng m V.S.Nam B/m KTHT, khoa CNTT, HXD nh Bài gi ng C+ + 7/11/2008 6. 3... p, trình d ch s ng m hi u chúng là hàm c nh ngh a quá ph c t p inline å không Nên nh ngh a HTP ngoài l p: làm t ng tính d c, d hi u, tính m quan c a ch ng trình ngu n HTP c truy nh p t i thành ph n c a i t ng thu c cùng l p n u chúng c khai báo bên trong nh ngh a hàm nh m t i t ng c c b hay m t tham s hình th c c a hàm C th g i HTP t m t HTP kh c trong c ng khai báo l p g i hàm trùng tên và danh sách... Con tr this tham chi u n i t ng ang g i HTP å c th truy nh p gián ti p n c c thành ph n (d li u, hàm) c a i t ng g i HTP ó thông qua con tr this V.S.Nam B/m KTHT, khoa CNTT, HXD Bài gi ng C+ + 7/11/2008 6. 2 Líp vµ ®èi t îng 6. 2.2 Thao t c v i – Phép gán it • C ch gán it ng ng it ng – C th th c hi n phép gán gi a hai i t ng c ng ki u – Phép gán th c ch t là vi c sao chép giá tr c c DLTP t i t ng ngu . phng, c c h thng thigianthc, c c h thng song song v mng nron, c c h CAD/CAM, c c h CSDL HT, c c h TTNT, HCG, HTGQ, Bài ging C+ +. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 5 6. 1 C+ + v 6. 1 C+ +. C+ + linh đng hn. – C+ + không bt bu c đóng gói d liu å nh c đim chính c a C+ +. • C+ + phù hp cho ngi mi h c lp trình: c th s dng c tính c u tr c và đi tng trong chng trình. Bài. Lpv c u tr c trong C+ + – C u tr c trong C+ + ch c mt đim kh c duy nht vi lp: thu c tính truy xut ngm đnh là public thay vì private. – Tt c c c tính cht, kh nng… c n li c a lp