C++ lập trình hướng đối tượng

231 180 0
C++ lập trình hướng đối tượng

Đ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

Trang | 1 ĐNG NGC HOÀNG THÀNH LP TRÌNH HNG ĐI TNG Tài liu hc tp C ++ Theo dõi bn cp nht trên blog ca tôi. Trang | 2 C++ PH LC GII THIU 7 MÔI TRNG PHÁT TRIN TÍCH HP IDE 10 CHNG  C BN V C++ 23 CHNG  BIN VÀ CÁC KIU D LIU 26 T khóa 26 Kiu d liu nguyên thy 27 Khai báo bin 28 Phm vi tác dng ca bin 29 Khi to giá tr cho bin 30 Khi to giá tr cho bin tĩnh static 31 Gii thiu v xâu kí t 32 CHNG  HNG 34 Hng s nguyên 34 Hng s thc có du chm đng 34 Hng kí t và hng xâu kí t 35 Hng logic 36 Đnh nghĩa mt hng #define 36 Khai báo hng const 37 CHNG . TOÁN T 38 Toán t gán 38 Toán t thc hin phép toán s hc 39 Toán t gán hp nht 40 Toán t tăng và gim 40 Toán t so sánh 41 Toán t logic 42 Toán t điu kin 43 Toán t phân tách 45 Trang | 3 C++ Toán t dch bit 45 Toán t chuyn đi kiu d liu 48 Các toán t khác 49 Th t u tiên ca các toán t 49 CHNG  XUT NHP C BN  Xut d liu chun cout 52 Nhp d liu chun cin 53 Nhp d liu nh lp stringstream 55 CHNG  CÁC CU TRÚC LNH ĐIU KHIN  Cu trúc lnh có điu kin if và else 58 Cu trúc lp 60 Cu trúc la chn switch 67 CHNG  HÀM 72 Khai báo và s dng hàm 73 Phm vi tác dng ca bin 77 Hàm không tr v giá tr - Hàm void. 78 Tham bin và tham tr 79 Giá tr mc đnh ca tham s hình thc 82 Chng cht hàm 83 Hàm ni tuyn 84 Hàm đ quy 85 CHNG  CÁC KIU D LIU CÓ CU TRÚC 88 Mng 88 Xâu kí t 91 CHNG  CON TR  Toán t tham chiu & 93 Toán t tham chiu ngc * 94 Khai báo bin con tr 96 Con tr, mng và xâu kí t 98 Trang | 4 C++ Các phép toán s hc trên con tr 100 Con tr tr vào con tr 102 Con tr void 104 Con tr null 105 Con tr hàm 105 CHNG  B NH ĐNG 107 Toán t new và new 107 Toán t delete và delete 109 CHNG  KIU D LIU STRUCT VÀ CON TR STRUCT 110 Struct 110 Con tr struct 114 Struct lng nhau 115 Kích thc b nh ca struct 115 CHNG  CÁC KIU D LIU KHÁC 117 Kiu d liu t đnh nghĩa 117 Kiu d liu union thng 117 Kiu d liu union n danh 118 Kiu d liu enum 118 CHNG  LP TRÌNH HNG ĐI TNG 120 Lch s hình thành 120 Lp và đi tng 126 Hàm to và hàm hy 130 Chng cht hàm to 132 Hàm to sao chép 133 Tính đóng gói – Encapsulation 139 Con tr đi tng 140 Lp đc khai báo nh t khóa struct và union 141 Con tr this 141 Thành viên tĩnh – T khóa static 143 Trang |  C++ Hàm bn và lp bn 144 Chng cht toán t 147 Tính k tha - Inheritance 153 Các mc truy cp 156 Tính đa k tha – Multiple Inheritance 159 Tính đa hình – Polymorphism 160 Tính tru tng hóa - Abstraction 172 Hàm mu – Template Function 173 Lp mu – Template class 173 CHNG  NAMESPACE 178 T khóa namespace 178 T khóa using 179 Phm vi ca namespace 180 Tái đnh danh cho namespace 181 Namespace std 181 CHNG  NGOI L 182 Mnh đ try…catch 182 Mnh đ throw 182 Th vin chun exception 183 CHNG  LÀM VIC VI FILE 186 M file 186 Đóng file 188 File văn bn 188 Kim tra trng thái ca các c hiu 189 Con tr get và put 190 File nh phân 192 B đm và Đng b hóa 193 CHNG  CÁC LP TH VIN  1. Lp s phc complex 194 Trang | 6 C++ 2. Lp ngăn xp stack 196 3. Lp hàng đi queue 197 3. Lp vector 198 4. Lp string 200 5. Lp list 203 6. Lp map 203 7. Lp set 204 8. Các lp th vin nhp xut 204 HNG DN THC HÀNH 212 BÀI THC HÀNH S 1 212 BÀI THC HÀNH S 2 213 BÀI THC HÀNH S 3 214 BÀI THC HÀNH S 4 215 BÀI THC HÀNH S 5 215 BÀI THC HÀNH S 6 216 BÀI TP NÂNG CAO 218 BÀI TP LN  DANH SÁCH HÌNH 228 TRA CU T KHÓA  TÀI LIU THAM KHO 230 Trang | 7 C++ GII THIU 1. Cu trúc ca giáo trình Giáo trình đc chia ra làm 17 chng và mi chng đc chia làm các mc khác nhau. Các chng đc sp xp theo trình t t lp trình hng th tc trên C đn lp trình hng đi tng và các lp th vin c bn. Đc gi có th truy cp vào mc bt kì t phn ph lc nm đu sách Nhiu mc bao gm các ví d đ mô t cách s dng. Tôi khuyên các bn nên đc các ví d này và có th hiu mi đon mã chng trình trc khi đc chng tip theo. Mt cách thc tt đ tăng lng kin thc nhn đc đó là hãy chnh sa, b sung mã lnh mi da trên ví d mu, theo hng t duy ca ca bn thân đ t đó có th hiu mt cách đy đ v ni dung mà ta tip thu đc. Sau khi đc xong giáo trình, tôi còn cung cp mt s bài tp thc hành đ ngh đ đc gi nên th nghim. Hãy gii nhng bài tp này chúng s rt hu ích và giúp các bn cũng c li kin thc môn hc cũng nh hiu sâu sc hn phn lý thuyt. Mt điu na mà đc gi cn lu ý hãy đc trang cui cùng ca cun sách đ nm đc mt s thut ng anh-vit tng ng đc s dng trong giáo trình này. Tôi cũng có gng s dng tên gi phù hp nht vi đi đa s các giáo trình hin hành. Tuy nhiên, đc gi cũng nên nm các thut ng ting anh tng ng đ có th tham kho thêm các tài liu chuyên môn ting anh. Khi vit giáo trình này, tôi không th tránh khi sai sót Rt mong s đóng góp ý kin quý báu ca các bn đc gi cũng nh các bn đng nghip. Mi s đóng góp xin liên h theo đa ch email: dnhthanh@hueic.edu.vn. Hi vng vi các ý kin đóng góp ca các bn, giáo trình này s ngày càng hoàn thin hn. 2. Mt vài chú ý v s tng thích ca C và C++ Chun ANSI-C đc mt t chc tiêu chun quc t thng nht đa ra Nó đc chính thc ra mt vào tháng  năm  và duyt li vào Trang | 8 C++ năm  Tuy nhiên ngôn ng C đã tn ti trc đó mt thi gian khá dài vào năm  Trc đó có rt nhiu trình dch không h tr các tính năng mi bao gm c chun ANSI-C++. Giáo trình này đc xây dng trên các chng trình dch hin đi h tr đy đ chun ANSI-C++. Tôi đm bo rng các ví d s hot đng tt nu đc gi s dng mt trình dch h tr ANSI-C++. Có nhiu s chn la, có th là min phí hoc các phn mm thng mi. Trong giáo trình này, tôi gii thiu đn các các bn hai công c biên dch C++ là GCC MinGW – min phí và Visual C++ - thng mi. 3. Trình biên dch Các ví d trong cun giáo trình này đc xây dng ch yu trên ch đ console màn hình DOS Điu đó có nghĩa là nó s dng ch đ văn bn đ hin th các kt qu. Mi trình dch C đu h tr ch đ dch console Vi mt môi trng phát trin tích hp IDE cho C++ min phí, chúng ta có th s dng chng trình Codeblocks hoc Eclipse. Chúng là các môi trng phát trin tích hp h tr son tho và biên dch C++. Chúng h tr môi trng GCC đ biên dch c C và C++. Vi CodeBlocks chúng ta có th ti phn mm ti đa ch bên di 1 . Đi vi Eclipse nó là mt trình son tho và biên dch ngôn ng lp trình chuyên nghip nhng hoàn toàn min phí (vì ta có th cu hình kt hp vi các công c biên dch khác nhau đ to ra môi trng phát trin tích hp cho các ngôn ng lp trình khác nhau. Chúng ta có th dùng nó đ son tho và biên dch Java, PHP, JSP, Python… và hin nhiên là c C/C++. Đây là mt d án mã ngun m, tiêu tn hàng triu đôla ca IBM. Đ ti v bn mi nht cho đn thi đim này năm  là Eclipse Helios, ta có th truy cp đn đa ch bên di 2 . Đi vi Eclipse chúng ta nên s dng kt hp vi trình biên dch C++ là MinGW, nó cũng là mt d án m. Chúng ta có th ti v ti đa ch bên di 3 . Vi Eclipse thì công vic cu hình ban đu tng đi phc tp. Nhng nó là mt trình son tho tuyt vi. Ta có th s dng nó đ son tho nhiu ngôn ng lp trình bng cách cài đt thêm plugin h tr. Nhiu nhà phát trin đã s dng Eclipse làm nn tng cho vic phát trin các ng dng ca mình: Embarcadero s dng 1 httpwwwcodeblocksorgdownloads 2 httpftpjaistacjppubeclipsetechnologyeppdownloadsreleaseheliosReclipse-cpp-helios- winzip 3 httpnchcdlsourceforgenetprojectmingwAutomatedMinGWInstallermingw-get- instmingw-get-inst-mingw-get-inst-20100831.exe Trang |  C++ nó đ phát trin JBuider Adobe s dng nó đ phát trin Flash Buider và rt nhiu các hãng phn mm ni ting khác. Nu là mt lp trình viên Java Eclipse là mt s la chn không th b qua. Nu phát trin Flash theo d án mã ngun m t Adobe Eclipse cũng là s la chn hoàn ho. Nu phát trin C/C++, vi các trình son tho thì Eclipse cũng là s la chn không ti. Vic s dng thành tho Eclipse s là mt li th cho chúng ta khi tin hành nghiên cu Java, lp trình Web, Flex, Python… sau này Bên cnh đó chúng tôi cũng gii thiu môi trng phát trin tích hp IDE Microsoft Visual Studio Đây là trình biên dch thng mi và là trình biên dch chuyên nghip và ni ting nht trên h điu hành Windows Ta có th s dng đ phát trin các ng dng trên nn NET hoc các ng dng Win32. Nu mun phát trin các ng dng theo hng ca Microsoft ta nên s dng Visual Studio Phiên bn mi nht đn thi đim này là VS 2010. Nhng cn lu ý rng, khi nghiên cu Visual C hãy chn la phiên bn dành cho Win32 mà không phi là ng dng CLI (common language infrastructure bi nó đc phát trin trên nn NET. Và Visual C for NET có mt s khác bit so vi Visual C++ for Win32. [...]... ta ph i th c hi n c u hình k t h p v i trình biên d ch GCC N u i có nhi u tr i nghi m v máy tính, thì nên ch b n th o r t chuyên nghi p N i m i ti p xúc máy tính, hãy ch n CodeBlock vì n 3 Visual Studio 2010 dành cho Visual C++ Nó là trình biên d ch t t nh t, hi ta có th d biên d T tìm hi u ng ti p c n v i C++ M uc , v i phiên b n dành cho C++: C++ for Net và C++ for Win32 Chúng ta ch tìm hi u v i... th y i v i ki u d li u tham chi u, tôi gi i thi u trong ph n l p trình ng trong C++ T khóa trong C++ có th có m t ho c nhi u t N u t khóa có nhi u t , thì gi a các t có d u g ch chân (_ tr ng và các kí t c bi t d ng trong t khóa, tên hàm, tên bi n Tên c a chúng cb u b ng kí t T r a n g | 26 C++ T C n và Các ki u d li u ng t n trong C++ asm, auto, bool, break, case, catch, char, class, const, const_cast,... VS 2010, ta nh p chu t ph i vào tên d án nS chúng ng vào vùng bi Hình 15 - Xem bi T r a n g | 22 nh m cho vi c kh i t o n l p C++ -T nh, nh n t h p Ctrl+K, C n v C++ N V C++ C u trúc c a m M t cách th c t t nh h cl vi t m u tiên N u chúng ta ng làm quen v i m t ngôn ng l p trình ch n bi n ví d n c a m t ngôn ng l p K t qu { cout N Project Trong h p tho i hi n ra, chúng ta ch n console application Và nh nh p Next p Next Trong h p tho i ti p theo, ta ch n C++ và Hình 1 – T o m i d H p tho i yêu . Trang | 7 C++ GII THIU 1. Cu trúc ca giáo trình Giáo trình đc chia ra làm 17 chng và mi chng đc chia làm các mc khác nhau. Các chng đc sp xp theo trình t t lp trình. Giáo trình này đc xây dng trên các chng trình dch hin đi h tr đy đ chun ANSI -C++. Tôi đm bo rng các ví d s hot đng tt nu đc gi s dng mt trình dch h tr ANSI -C++. . Trong giáo trình này, tôi gii thiu đn các các bn hai công c biên dch C++ là GCC MinGW – min phí và Visual C++ - thng mi. 3. Trình biên dch Các ví d trong cun giáo trình này đc

Ngày đăng: 17/05/2014, 19:26

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan