τς τύ CUONG Α trinh ΒΑΝ ΗυόΝ6 ΘόΙ τιιφΝ€ ΝΗλ χυΑτ ΒΑΝ ΚΗΟΑ νΑ κΫ THUAT τς DlLNGτύ cUdNG NGl:r Ιόρ TRiNH C++ Tir ΜΒλΝ HlTNCDOl TiTNG 02 12 ΝΗλ χυΑ'τ ΒΑΝ ΚΗΟΑ ΗΑ Νφι νλ κΫ ΤΗυΑτ LOI NOI DRU Trong nhüng näm 1980,ngön ngü C dä khäng dinh duqc vi tri quan trqng cåc ngön ngü 141)trinh cö cau truc bdi tinh da näng cåa minh Mét chUOngtrinh duqc thiét ké trén ngön ngü C Chubngphåt huy duqc nhiöu tåc dung khö c(')thd héi cåc ngön ngü d trinh khåc Tuy vay dé phüc top cåa cåc båi toån cån giåi quy6t trén thuc té ngåy cång tång thi ngön ngü C cüng dä béc IQnhüng didm yéu, nhåt lå duqc sü dgng cho cåc du ån Idn Dd khÅcphyc nhüng hon ché cön tan toi ngön ngü C nöi riéng vå cåa cåc ngön ngü 141)trinh co cau trüc nöi chung, cåc nhå thiét ké' phån mörn dä phåt trien mét tudng mdi Cåc S' tudng nåy, méc dü duqc xuät hién tü nhüng näm 1970nhung chi duqc så dyng mét cåch réng räi dd xåy dung phån mem våo nhüng nåm 1980 Didm må"uchö't dd xåy dung tudng nåy lå khå näng thié't k6 nhüng phån mem mang nhüng döc tinh cåa thé' gidi thuc bén ngổi KYtht 141)trinh dua trén S'tttdng mdi nåy cd)tén "KYthu#t lap trinh hudng döå tuqn€' (Object- Oriented - Programing OOP) vå trén ky thu@t mdi nåy nhi6u trinh bién dich dä duqc thié"tké' nhu smalltalk, C++, V.v 1441) trinh dinh hudng döi tuqng duqc phåt tridn tu ngön ngü 141)trinh co cäu trüc nhung thay vi xoay quanh chüc nång cua nhiém vu duqc (14tra, OOP Iqi dåt trqng tam cåa minh våo viéc xü Ij cåc dü liQudd thuc hién cåc chüc nång dö Trong 141)trinh dinh hudng dö'i tuqng, khåi niQmvé object (döåtuqng) trd thånh mÔtkhâi nięm tręng tâm vâ hâu nhu męi cơng viëctrongmƠt chUdng trinh dƠudușc tiơn hânh trơn căc dơỵ tutqngnây Căc thânh phân căa mƠt OOP bao gƠm:dơỵ tuęng, thuÔc tinh, tâc dÔng(phUdngthtc) giao dięn vâ khâ nhin thõ'y Cihacõc dụẻ tU4ng MQi dụợ tUng duc thiụ't lâp ()()P dÔulâ căc cău truc dÔclâp bao gÔmdă lięu vă căc tâc dƠngmâ dơỵ tuqng cĨ the tht;ỵc hięn trơn căc dă lięu dó Khâi niëm vƠdơỵ tuqng duqc dăng riông cho mot thuc thd riông bięt hoăc chomƠt lĨp CihanhiƠu thuc thd MƠt dơỴ tuvng chi có thđ thuc hien câc tâc dƠngduqc dinh nghia bơn qua căc thơng diƠpdif4C gdi dơ'n chinh bân thân dơỴ tuvng nây vâ diƠucân litu S'lâ chicó chinh dơỴ tuvng nây mói có thơȘthuc hiën căc tâc dƠngdó.Qua dơi hƠinó thơng dięp nây dơỴ tușng së nhân duęc căc nhięm phâi thuc hiën Nhut vây, mƠt dơỴ tușng có thd xem nhti lă mƠt dąi Iuvng mâ d dó hƠi tu nhđng dăc didm sau: cĨtơn, có trąng thâi, có căc tâc dƠngmâ dơỵ tutong có thơ"thuc hiën vă khâ dn dăi vói căc dơỴ tuvng khăc xây Ngơnngđ C" lă mƠttrong căc ngơn ngd lâp trinh dlięc dung tit căc tng mói nây vâ có the xem Cŕ+lă mot doi diën didn hinh cho phuong phńp lâp trinh mói: lâp trinh hlióngdơỵ khăi tuęng Vói ngơn ngd năy, ta có thơ lăm quen vĨi mot sơ nięm mói ky tht lâp trinh liơn quan dơ'nthơ'giói tinh vă tinh dóng góp (encapsulation), (inheritance) kV thỵra tinh ngơll tudng tng bƠi(polymorphism) có khơng Căc dăc tinh huy hëỴ ngd lâp trinh trunthĨng phăt dă lăm cho (Y+ có dertl tâc dung căng minh thiđt kGcăc du ân lón nhttng ląi nhiƠu khó khăn cho ł)ă câc bąn mĨi băt ț'ói (Ye quen vói thi có th6 nhân thăy râng mƠt chU(jng trinh bietlă vi6t trơn ngôn ngd năy së hă clăc suc săc tich, rô vă d möt chüng muc näo dö Sé cho phép phåt trién nö theo mot suy nghi hét süc tu nhién Su phåt trién cåa C++dä tråi qua nhi6u chöng ddöng vdi nhi6u phién bån khåc Tåi liéu näy sü dyng phién bån cüa häng Borland - Borland C 3.1 dBgidi thiéu vö ngön ngü C++.Däy lä trinh bién dich mä theo chüng töi rät tién Iqi cho Viec nghién cåc phån möm Cuöåisåch nåy duqc bién cüu cüng nhu thiét soon dua trén nhi6u tåi liéu khåc vä trén kinh nghiém cåa chinh tåc giå läm viQcvdi C++.Khåc vdi néi dung cåa mét so tåi liéu khåc, cuön såch nåy ditdc bién sogn dé bgn dec Cöthé vd ngön ngÜt C låm Viecngay vdjiC++ må khöng cån phåi bié't Néi dung cåa cuön såch duqc chia Ihm phÄn bao gam 11 chuong Phän I: C++ - Låp trinh cd bån, bao gam chuong: Chudng I: Cåc khåi niQmco bån vö C++ ChUOngII: Cåc håm vå cåc döng nh4p xuåt Chddng III: Cåc phép tổn vå cåu IQnhdiưu khidn Chddng IV: Bư tién xü 19 Chuong V: Bién trö, bién tham chiéu vå håm Chddng VI: Cåc kidu dü liéu phüc top Phän II: Läp trinh hitÜngdöi tWng, bao garn chUdng: ChucjngVII: Ldp vå döåtuqng Chucjng IIX: Tfnh thüa ké Chitdng IX: Dinh nghia chdng cåc håm vå toån tü ChucjngX: Tinh tuong üng béi Chuong XI: Thu viQn cåc döpg nh#p xuå"t Ngön ngü Iäp trinh C lå måt ngön ngü Iöp trinh kh6vå C++ Iqi Cönphüc tqp hdn ngön ngü C vi Véydöi hdi å chüng ta måt tinh thån chiu khö tim töi, ham hidu bié't Tuy våy, mot ban dä nåm chåc dd4c ngön ngü nåy, chüng töi tin tudng rÅng,trong tay bqn, C++Sé trå thånh måt Cöngcu hét Süc däc luc vå Vöcüng tién Iqi giüp ben giåi quyét Cåcbåi toån ky thu#t phüctqp må trudc dö bon dä phåi våt vå giåi quyöt trén ngön ngü C vå Cåcngön ngü khåc Chüc Cåcbgn thånh cöng MUC LUC Trang Löi nöi dåu PHÅN 1:C++ - LAP TRiNH CO BÅN ChuangI cÅc KHÅI NIÉM CO BÅN VÉ C++ 1.1 Cåc hiQu 1.2 HÅng 1.3 Bién 11 12 1.4 Cåc 104i dü lieu vå cåch khai båo 13 1.5 Mång 15 1.6 Chü giåi „ 1.7 Cåu trüc cåa chUOngtrinh C++ 15 Chuang 11 cÅc HÅMvÅ cÅc I)ÖNGNHSp XUÅT 2.1 Cåc håm nhåp xuå't thöng tin 2.2 Cåc döng nh#p xuå"t 17 .21 497 2.3 XII IS'khuôn dong nhâp 2.4 Câc dòng xuâ't nhâp làm viêc v6i chuôi .56 .61 2.5 sù dung PRINTER nhü STREAM 111 cÂc PHÉp TOÂNvÀ cÂU LÊNH DIÉU KHIÊN 63 3.1 Câc phép toân 3.2 Câc câu lënh diêu khidn 73 IV BO TIÊN xer Li 97 4.1 Dinh nghia Macro , 102 4.2 Biên dich c6 diêu kiên ChlftjngV BIGN CON TRƠ, BIÉN THAM CHIÉU vÀ HÀM 5.1 Bi6n trị 5.2 Biê'n tham chi6u 5.3 Hàm Cheong V1 cÂc KIÊU LIÈU PHÛc TAP 6.1 Kidu dü liëu typedef 6.2 Dü liëu thuOc ki6u enum 498 .105 133 .136 173 175 6.3 Dü liêu câ'u trüc 176 202 6.4 Dü liëu kiéu hQp 6.5 Cdu trüc bit hay vùng bit .1 205 TRiNH HUdNG 061 TNG PHÂN 11: Chltdng VII LƠp vÀ DƠI TUQNG 7.1 Dinh nghïa 161)và khai bâo dôl tdëng 209 7.2 Thành phàn dü liëu (DATAMEMBER) 213 7.3 Hàm thành phàn (FUNCTIONMEMBER) 222 Chûûng VIII TiNH TWA KG 289 8.1 Thüa kê' don (SINGLE 8.2 Thùa (MULTIPLE INHERITANCE) 325 Chüûng IX DINH NGHỴA CHONG cÂc HAM vÀ rrN TCr 9.1 Hàm duqc dinh nghia 9.2 Câc tôn tù dutqcdinh nghia chơng (OVERLOADING OPERATOR) 351 499 ChztdngX TiNH TÜONG ÜNG BÖI 10.1 SV räng buéc sdm vä .390 10.2 Häm åo (VIRTUAL FUNCTION) 391 THÜ VIÉN cÅc DONG NHAp XUÄT 11.1 cäu trüc cåy tu STREAMBUF 11.2 Cå'u trüc cåy tü ldp IOS Tåi liéu tham khåo 500 421 .462 496 ... trinh bietlă vi6t trôn ngôn ngd năy së hă clăc suc săc tich, rơ vă d mưt chüng muc näo dö Sé cho phép phåt trién nö theo mot suy nghi hét süc tu nhién Su phåt trién cåa C++dä tråi qua nhi6u chöng... nghiém cåa chinh tåc giå läm viQcvdi C++. Khåc vdi néi dung cåa mét so tåi liéu khåc, cuön såch nåy ditdc bién sogn dé bgn dec Cöthé vd ngön ngÜt C låm Viecngay vdjiC++ må khöng cån phåi bié't Néi... cåa cuön såch duqc chia Ihm phÄn bao gam 11 chuong Phän I: C++ - Låp trinh cd bån, bao gam chuong: Chudng I: Cåc khåi niQmco bån vö C++ ChUOngII: Cåc håm vå cåc döng nh4p xt Chddng III: Cåc phép