1. Trang chủ
  2. » Công Nghệ Thông Tin

Ngôn ngữ lập trình C - Chương 6 potx

50 182 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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 ging 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 Lptrìnhhng đi tng trong C++ – C++: thêm kh nng lp trình HT vào C • C++: thahng ttcđimmnh caC – Là ngôn ng bao trùm lên C å thahng đy đ scmnh caC (ví d tính kh chuyn, tính mmdo, ). – C trong C++ có mtsđim khác so vi ANSI C: thay đi, thêm mi, citin å phù hphn å tng cng scmnh cho C. • C++: cài đt kh nng lp trình HT da trên khái nim lp – Lp bao gm các d liu thành phn (thuc tính) và các hàm thành phn (phng thc) å đóng gói d liu. – Thc cht lp là 1 kiu d liu do ngi dùng t đnh ngha. – Cho phép k tha các lp đã xây dng å đc đim quan trng ca lp trình HT. – Cho phép th hin tính đa hình trong tha k, đây cng là mt đc đim quan trng ca lp trình HT. Bài ging 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 Lp trình hng đi tng trong C++ – Lp trình HT trong C++: mt s đc đim cn chú ý • C++ là ngôn ng lai (không phi là ngôn ng HT thun khit) <> SmallTalk, Java, … – So vi lp trình HT thun túy, cài đt c th ca đi tng trong C++ linh đng hn. – C++ không bt buc đóng gói d liu å nhc đim chính ca C++. • C++ phù hp cho ngi mi hc lp trình: có th s dng c tính cu trúc và đi tng trong chng trình. Bài ging 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 nghalp – Cú pháp khai báo class tên_lp{ private: //khai báo các thành phn riêng ca lp [d liu thành phn] [đnh ngha hàm thành phn hoc nguyên mu hàm] public: //khai báo các thành phn công cng ca lp [d liu thành phn] [đnh ngha hàm thành phn hoc nguyên mu hàm] }; /*nh ngha các hàm thành phncha đc đnh nghabên trong khai báo lp */ [Hàm thành phn đnh ngha ngoài lp] • Thct cho thy, có nhiukiu khai báo và các kiu đó đucóth chunhóav dng trên. Bài ging 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 ngha lp – Cú pháp khai báo (tip) • Khai báo đitng – Cú pháp: tên_lp tên_đtng; – Có th xem lplàmtkiud liu: • To đitng ~ khai báo bin. • Mi đitng là mtth hincalp. – itng bao gmtp các bintng ng vi tên và kiucacác DLTP. – Các đitng chung nhau đnh ngha hàm thành phn. – Có th khai báo mng các đitng nh mng thông thng. – Có th dùng các phép toán new và delete đ cpphátvàgii phóng b nh cho đitng. • Phép toán new s tr v mtcon trđitng. Bài ging 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 ngha lp – Cú pháp khai báo (tip) • Con trđitng – Cú pháp khai báo : tên_lp *tên_con_tr_đtng; – Con trđitng có th nhn giá tr là đach ca đitng cùng kiulp å có th gi các thành phn(d liu, hàm) calp thông qua con tr bng cách s dng phép toán “->”. • Tham chiu đitng – Cú pháp khai báo : tên_lp &tên_thchiu_đtng = tên_đtng_đã_có; – Mtthamchiu đitng ch có ý ngha khi nó tham chiutimt đi tng nào đó đã đc khai báo trc đó. • Chú ý: con tr hoc tham chiu không philàmtth hin (instance) calp. Bài ging 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 ngha lp – Các chi tit trong khai báo lp • D liu thành phn (thuc tính) – DLTP là d liu gn vi lp (đi tng). • D liu thành phn (DLTP) là thutng caC++, cònthuctínhlà thutng trong lp trình HT nói chung. – DLTP có th là binkius s, kiuphchphoc đitng thuclp nào đó. – DLTP không th là đitng thucbnthânlp đang đc đnh ngha nhng có th là con tr hoc tham chiuti đitng calp đó. – Có th s dng t khoá static cho DLTP. – Không đcs dng các t khoá auto, register, extern cho DLTP. – Không th khi đ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 ging C+ +. 7/11/2008 V.S.Nam. B/m KTHT, khoa CNTT, HXD 5 6. 1 C+ + v 6. 1 C+ +. C+ + linh đng hn. – C+ + không bt bu c đóng gói d liu å nh c đim chính c a C+ +. • C+ + phù hp cho ngi mi h c lp trình: c th s dng c tính c u tr c và đi tng trong chng trình. Bài. Lpv 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

Ngày đăng: 06/08/2014, 01:20

TỪ KHÓA LIÊN QUAN

w