Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 231 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
231
Dung lượng
4,34 MB
Nội dung
Trang | 1 ĐNG NGC HOÀNG THÀNH LP TRÌNH HNG ĐI TNG Tài liu hc tp C ++ Theo dõi bn cp nht trên blog ca tôi. Trang | 2 C++ PH LC GII THIU 7 MÔI TRNG PHÁT TRIN TÍCH HP IDE 10 CHNG C BN V C++ 23 CHNG BIN VÀ CÁC KIU D LIU 26 T khóa 26 Kiu d liu nguyên thy 27 Khai báo bin 28 Phm vi tác dng ca bin 29 Khi to giá tr cho bin 30 Khi to giá tr cho bin tĩnh static 31 Gii thiu v xâu kí t 32 CHNG HNG 34 Hng s nguyên 34 Hng s thc có du chm đng 34 Hng kí t và hng xâu kí t 35 Hng logic 36 Đnh nghĩa mt hng #define 36 Khai báo hng const 37 CHNG . TOÁN T 38 Toán t gán 38 Toán t thc hin phép toán s hc 39 Toán t gán hp nht 40 Toán t tăng và gim 40 Toán t so sánh 41 Toán t logic 42 Toán t điu kin 43 Toán t phân tách 45 Trang | 3 C++ Toán t dch bit 45 Toán t chuyn đi kiu d liu 48 Các toán t khác 49 Th t u tiên ca các toán t 49 CHNG XUT NHP C BN Xut d liu chun cout 52 Nhp d liu chun cin 53 Nhp d liu nh lp stringstream 55 CHNG CÁC CU TRÚC LNH ĐIU KHIN Cu trúc lnh có điu kin if và else 58 Cu trúc lp 60 Cu trúc la chn switch 67 CHNG HÀM 72 Khai báo và s dng hàm 73 Phm vi tác dng ca bin 77 Hàm không tr v giá tr - Hàm void. 78 Tham bin và tham tr 79 Giá tr mc đnh ca tham s hình thc 82 Chng cht hàm 83 Hàm ni tuyn 84 Hàm đ quy 85 CHNG CÁC KIU D LIU CÓ CU TRÚC 88 Mng 88 Xâu kí t 91 CHNG CON TR Toán t tham chiu & 93 Toán t tham chiu ngc * 94 Khai báo bin con tr 96 Con tr, mng và xâu kí t 98 Trang | 4 C++ Các phép toán s hc 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 CHNG B NH ĐNG 107 Toán t new và new 107 Toán t delete và delete 109 CHNG KIU D LIU STRUCT VÀ CON TR STRUCT 110 Struct 110 Con tr struct 114 Struct lng nhau 115 Kích thc b nh ca struct 115 CHNG CÁC KIU D LIU KHÁC 117 Kiu d liu t đnh nghĩa 117 Kiu d liu union thng 117 Kiu d liu union n danh 118 Kiu d liu enum 118 CHNG LP TRÌNH HNG ĐI TNG 120 Lch s hình thành 120 Lp và đi tng 126 Hàm to và hàm hy 130 Chng cht hàm to 132 Hàm to sao chép 133 Tính đóng gói – Encapsulation 139 Con tr đi tng 140 Lp đ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 bn và lp bn 144 Chng cht toán t 147 Tính k tha - Inheritance 153 Các mc truy cp 156 Tính đa k tha – Multiple Inheritance 159 Tính đa hình – Polymorphism 160 Tính tru tng hóa - Abstraction 172 Hàm mu – Template Function 173 Lp mu – Template class 173 CHNG NAMESPACE 178 T khóa namespace 178 T khóa using 179 Phm vi ca namespace 180 Tái đnh danh cho namespace 181 Namespace std 181 CHNG NGOI L 182 Mnh đ try…catch 182 Mnh đ throw 182 Th vin chun exception 183 CHNG LÀM VIC VI FILE 186 M file 186 Đóng file 188 File văn bn 188 Kim tra trng thái ca các c hiu 189 Con tr get và put 190 File nh phân 192 B đm và Đng b hóa 193 CHNG CÁC LP TH VIN 1. Lp s phc complex 194 Trang | 6 C++ 2. Lp ngăn xp stack 196 3. Lp hàng đi queue 197 3. Lp vector 198 4. Lp string 200 5. Lp list 203 6. Lp map 203 7. Lp set 204 8. Các lp th vin nhp xut 204 HNG DN THC HÀNH 212 BÀI THC HÀNH S 1 212 BÀI THC HÀNH S 2 213 BÀI THC HÀNH S 3 214 BÀI THC HÀNH S 4 215 BÀI THC HÀNH S 5 215 BÀI THC HÀNH S 6 216 BÀI TP NÂNG CAO 218 BÀI TP LN DANH SÁCH HÌNH 228 TRA CU T KHÓA TÀI LIU THAM KHO 230 Trang | 7 C++ GII THIU 1. Cu trúc ca giáo trình Giáo trình đc chia ra làm 17 chng và mi chng đc chia làm các mc khác nhau. Các chng đc sp xp theo trình t t lp trình hng th tc trên C đn lp trình hng đi tng và các lp th vin c bn. Đc gi có th truy cp vào mc bt kì t phn ph lc nm đu sách Nhiu mc bao gm các ví d đ mô t cách s dng. Tôi khuyên các bn nên đc các ví d này và có th hiu mi đon mã chng trình trc khi đc chng tip theo. Mt cách thc tt đ tăng lng kin thc nhn đc đó là hãy chnh sa, b sung mã lnh mi da trên ví d mu, theo hng t duy ca ca bn thân đ t đó có th hiu mt cách đy đ v ni dung mà ta tip thu đc. Sau khi đc xong giáo trình, tôi còn cung cp mt s bài tp thc hành đ ngh đ đc gi nên th nghim. Hãy gii nhng bài tp này chúng s rt hu ích và giúp các bn cũng c li kin thc môn hc cũng nh hiu sâu sc hn phn lý thuyt. Mt điu na mà đc gi cn lu ý hãy đc trang cui cùng ca cun sách đ nm đc mt s thut ng anh-vit tng ng đc s dng trong giáo trình này. Tôi cũng có gng s dng tên gi phù hp nht vi đi đa s các giáo trình hin hành. Tuy nhiên, đc gi cũng nên nm các thut ng ting anh tng ng đ có th tham kho thêm các tài liu chuyên môn ting anh. Khi vit giáo trình này, tôi không th tránh khi sai sót Rt mong s đóng góp ý kin quý báu ca các bn đc gi cũng nh các bn đng nghip. Mi s đóng góp xin liên h theo đa ch email: dnhthanh@hueic.edu.vn. Hi vng vi các ý kin đóng góp ca các bn, giáo trình này s ngày càng hoàn thin hn. 2. Mt vài chú ý v s tng thích ca C và C++ Chun ANSI-C đc mt t chc tiêu chun quc t thng nht đa ra Nó đc chính thc ra mt vào tháng năm và duyt li vào Trang | 8 C++ năm Tuy nhiên ngôn ng C đã tn ti trc đó mt thi gian khá dài vào năm Trc đó có rt nhiu trình dch không h tr các tính năng mi bao gm c chun ANSI-C++. Giáo trình này đc xây dng trên các chng trình dch hin đi h tr đy đ chun ANSI-C++. Tôi đm bo rng các ví d s hot đng tt nu đc gi s dng mt trình dch h tr ANSI-C++. Có nhiu s chn la, có th là min phí hoc các phn mm thng mi. Trong giáo trình này, tôi gii thiu đn các các bn hai công c biên dch C++ là GCC MinGW – min phí và Visual C++ - thng mi. 3. Trình biên dch Các ví d trong cun giáo trình này đc xây dng ch yu trên ch đ console màn hình DOS Điu đó có nghĩa là nó s dng ch đ văn bn đ hin th các kt qu. Mi trình dch C đu h tr ch đ dch console Vi mt môi trng phát trin tích hp IDE cho C++ min phí, chúng ta có th s dng chng trình Codeblocks hoc Eclipse. Chúng là các môi trng phát trin tích hp h tr son tho và biên dch C++. Chúng h tr môi trng GCC đ biên dch c C và C++. Vi CodeBlocks chúng ta có th ti phn mm ti đa ch bên di 1 . Đi vi Eclipse nó là mt trình son tho và biên dch ngôn ng lp trình chuyên nghip nhng hoàn toàn min phí (vì ta có th cu hình kt hp vi các công c biên dch khác nhau đ to ra môi trng phát trin tích hp cho các ngôn ng lp trình khác nhau. Chúng ta có th dùng nó đ son tho và biên dch Java, PHP, JSP, Python… và hin nhiên là c C/C++. Đây là mt d án mã ngun m, tiêu tn hàng triu đôla ca IBM. Đ ti v bn mi nht cho đn thi đim này năm là Eclipse Helios, ta có th truy cp đn đa ch bên di 2 . Đi vi Eclipse chúng ta nên s dng kt hp vi trình biên dch C++ là MinGW, nó cũng là mt d án m. Chúng ta có th ti v ti đa ch bên di 3 . Vi Eclipse thì công vic cu hình ban đu tng đi phc tp. Nhng nó là mt trình son tho tuyt vi. Ta có th s dng nó đ son tho nhiu ngôn ng lp trình bng cách cài đt thêm plugin h tr. Nhiu nhà phát trin đã s dng Eclipse làm nn tng cho vic phát trin các ng dng ca mình: Embarcadero s dng 1 httpwwwcodeblocksorgdownloads 2 httpftpjaistacjppubeclipsetechnologyeppdownloadsreleaseheliosReclipse-cpp-helios- winzip 3 httpnchcdlsourceforgenetprojectmingwAutomatedMinGWInstallermingw-get- instmingw-get-inst-mingw-get-inst-20100831.exe Trang | C++ nó đ phát trin JBuider Adobe s dng nó đ phát trin Flash Buider và rt nhiu các hãng phn mm ni ting khác. Nu là mt lp trình viên Java Eclipse là mt s la chn không th b qua. Nu phát trin Flash theo d án mã ngun m t Adobe Eclipse cũng là s la chn hoàn ho. Nu phát trin C/C++, vi các trình son tho thì Eclipse cũng là s la chn không ti. Vic s dng thành tho Eclipse s là mt li th cho chúng ta khi tin hành nghiên cu Java, lp trình Web, Flex, Python… sau này Bên cnh đó chúng tôi cũng gii thiu môi trng phát trin tích hp IDE Microsoft Visual Studio Đây là trình biên dch thng mi và là trình biên dch chuyên nghip và ni ting nht trên h điu hành Windows Ta có th s dng đ phát trin các ng dng trên nn NET hoc các ng dng Win32. Nu mun phát trin các ng dng theo hng ca Microsoft ta nên s dng Visual Studio Phiên bn mi nht đn thi đim này là VS 2010. Nhng cn lu ý rng, khi nghiên cu Visual C hãy chn la phiên bn dành cho Win32 mà không phi là ng dng CLI (common language infrastructure bi nó đc phát trin trên nn NET. Và Visual C for NET có mt s khác bit so vi 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++ GII THIU 1. Cu trúc ca giáo trình Giáo trình đc chia ra làm 17 chng và mi chng đc chia làm các mc khác nhau. Các chng đc sp xp theo trình t t lp trình. Giáo trình này đc xây dng trên các chng trình dch hin đi h tr đy đ chun ANSI -C++. Tôi đm bo rng các ví d s hot đng tt nu đc gi s dng mt trình dch h tr ANSI -C++. . Trong giáo trình này, tôi gii thiu đn các các bn hai công c biên dch C++ là GCC MinGW – min phí và Visual C++ - thng mi. 3. Trình biên dch Các ví d trong cun giáo trình này đc