Giáo trình C++ - Đại Học Bách Khoa (phần 2)
lượt xem 48
download
Tham khảo tài liệu 'giáo trình c++ - đại học bách khoa (phần 2)', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Giáo trình C++ - Đại Học Bách Khoa (phần 2)
- Môc lôc Môc lôc Ch¬ng Ch¬ng 1. LËp tr×nh híng ®èi tîng, ph¬ng ph¸p gi¶i quyÕt bµi to¸n míi ¬ tr× íng ®èi îng, ph¬ ph¸ gi¶ quyÕ ¬ng to¸ 1.Ph¬ng ph¸p lËp tr×nh............................................................................................. 1 2.Bµi to¸n quan hÖ gia ®×nh........................................................................................2 3.LËp tr×nh híng ®èi tîng...................................................................................... 6 3.1Mét sè kh¸i niÖm..............................................................................................7 3.2C¸c u ®iÓm cña LTH§T................................................................................. 8 3.3Nh÷ng øng dông cña LTH§T...........................................................................9 4.C¸c ng«n ng÷ lËp tr×nh híng ®èi tîng.................................................................9 5.Ng«n ng÷ lËp tr×nh C++........................................................................................ 10 Ch¬ng ¬ Ch¬ng 2. C¸c më réng cña C++ so víi C 1. C¸c ®iÓm kh«ng t¬ng thÝch gi÷a C++ vµ ANSI C.........................................13 1.1 §Þnh nghÜa hµm......................................................................................... 13 1.2 Khai b¸o hµm nguyªn mÉu........................................................................ 13 1.3 Sù t¬ng thÝch gi÷a con trá void vµ c¸c con trá kh¸c................................ 14 2. C¸c kh¶ n¨ng vµo/ra míi cña C++...............................................................15 2.1 Ghi d÷ liÖu lªn thiÕt bÞ ra chuÈn (mµn h×nh) cout..................................... 15 2.2 C¸c kh¶ n¨ng viÕt ra trªn cout.................................................................... 16 2.3 §äc d÷ liÖu tõ thiÕt bÞ vµo chuÈn (bµn phÝm) cin....................................18 3. Nh÷ng tiÖn Ých cho ngêi lËp tr×nh................................................................. 19 3.1 Chó thÝch cuèi dßng...................................................................................19 3.2 Khai b¸o mäi n¬i....................................................................................... 20 3.3 To¸n tö ph¹m vi “::”.................................................................................. 20 4. Hµm inline......................................................................................................21 5. Tham chiÕu..................................................................................................... 23 5.1 Tham chiÕu tíi mét biÕn............................................................................ 23 5.2 TruyÒn tham sè cho hµm b»ng tham chiÕu................................................ 25 5.3 Gi¸ trÞ tr¶ vÒ cña hµm lµ tham chiÕu.......................................................... 28 6. §Þnh nghÜa chång hµm (Overloading functions)............................................ 29 Trêng hîp c¸c hµm cã mét tham sè.............................................................. 31 -329-
- Môc lôc Trêng hîp c¸c hµm cã nhiÒu tham sè........................................................... 32 7. Tham sè ngÇm ®Þnh trong lêi gäi hµm........................................................... 32 8. Bæ sung thªm c¸c to¸n tö qu¶n lý bé nhí ®éng: new vµ delete....................35 8.1 To¸n tö cÊp ph¸t bé nhí ®éng new............................................................ 35 8.2 To¸n tö gi¶i phãng vïng nhí ®éng delete................................................ 36 9. Tãm t¾t........................................................................................................... 38 9.1 Ghi nhí...................................................................................................... 38 9.2 C¸c lçi thêng gÆp..................................................................................... 39 9.3 Mét sè thãi quen lËp tr×nh tèt.................................................................... 39 10. Bµi tËp.............................................................................................................39 Ch¬ng §èi îng Ch¬ng 3. §èi tîng vµ líp ¬ 1. §èi tîng........................................................................................................40 2. Líp..................................................................................................................42 2.1 Khai b¸o líp...............................................................................................42 2.1.1T¹o ®èi tîng.......................................................................................... 44 2.1.2C¸c thµnh phÇn d÷ liÖu............................................................................45 2.1.3C¸c hµm thµnh phÇn................................................................................ 45 2.1.4Tham sè ngÇm ®Þnh trong lêi gäi hµm thµnh phÇn..................................49 2.1.5Ph¹m vi líp..............................................................................................50 2.1.6Tõ kho¸ x¸c ®Þnh thuéc tÝnh truy xuÊt.................................................... 50 2.1.7Gäi mét hµm thµnh phÇn trong mét hµm thµnh phÇn kh¸c..................... 54 2.2 Kh¶ n¨ng cña c¸c hµm thµnh phÇn............................................................ 54 2.2.1§Þnh nghÜa chång c¸c hµm thµnh phÇn................................................... 54 2.2.2C¸c tham sè víi gi¸ trÞ ngÇm ®Þnh...........................................................56 2.2.3Sö dông ®èi tîng nh tham sè cña hµm thµnh phÇn..............................57 2.2.4Con trá this............................................................................................. 59 3. PhÐp g¸n c¸c ®èi tîng...................................................................................59 4. Hµm thiÕt lËp (constructor) vµ hµm huû bá (destructor)............. 60 4.1 Hµm thiÕt lËp............................................................................................. 60 4.1.1Chøc n¨ng cña hµm thiÕt lËp................................................................... 60 -330-
- Môc lôc 4.1.2Mét sè ®Æc ®iÓm quan träng cña hµm thiÕt lËp....................................... 62 4.1.3Hµm thiÕt lËp ngÇm ®Þnh.........................................................................63 4.1.4Con trá ®èi tîng.................................................................................... 67 4.1.5Khai b¸o tham chiÕu ®èi tîng............................................................... 69 4.2 Hµm huû bá............................................................................................... 70 4.2.1Chøc n¨ng cña hµm huû bá..................................................................... 70 4.2.2Mét sè qui ®Þnh ®èi víi hµm huû bá....................................................... 71 4.3 Sù cÇn thiÕt cña c¸c hµm thiÕt lËp vµ huû bá -líp vector trong kh«ng gian n chiÒu ................................................................................................................... 72 4.4 Hµm thiÕt lËp sao chÐp(COPY CONSTRUCTOR)......................................... 75 4.4.1C¸c t×nh huèng sö dông hµm thiÕt lËp sao chÐp...................................... 75 4.4.2Hµm thiÕt lËp sao chÐp ngÇm ®Þnh.......................................................... 76 4.4.3Khai b¸o vµ ®Þnh nghÜa hµm thiÕt lËp sao chÐp têng minh....................76 4.4.4Hµm thiÕt lËp sao chÐp cho líp vector.....................................................79 5. C¸c thµnh phÇn tÜnh (static)........................................................................... 83 5.1 Thµnh phÇn d÷ liÖu static..................................................................... 83 5.2 Khëi t¹o c¸c thµnh phÇn d÷ liÖu tÜnh......................................................... 84 5.3 C¸c hµm thµnh phÇn static......................................................................... 86 6. §èi tîng h»ng (CONSTANT )....................................................................... 89 6.1 §èi tîng h»ng.......................................................................................... 89 6.2 Hµm thµnh phÇn const.............................................................................. 89 7. Hµm b¹n vµ líp b¹n........................................................................................89 7.1 §Æt vÊn ®Ò.................................................................................................. 89 7.2 Hµm tù do b¹n cña mét líp........................................................................90 7.3 C¸c kiÓu b¹n bÌ kh¸c................................................................................. 92 7.3.1Hµm thµnh phÇn cña líp lµ b¹n cña líp kh¸c.......................................92 7.3.2Hµm b¹n cña nhiÒu líp............................................................................93 7.3.3TÊt c¶ c¸c hµm cña líp lµ b¹n cña líp kh¸c............................................ 94 7.4 Bµi to¸n nh©n ma trËn víi vector............................................................... 95 Gi¶i ph¸p thø nhÊt - prod lµ hµm b¹n tù do..................................................... 95 Gi¶i ph¸p thø hai- prod lµ hµm thµnh phÇn cña líp matrix vµ lµ b¹n cña vect97 -331-
- Môc lôc 8. VÝ dô tæng hîp................................................................................................98 9. Tãm t¾t......................................................................................................... 103 9.1 Ghi nhí.................................................................................................... 103 9.2 C¸c lçi thêng gÆp................................................................................... 104 9.3 Mét sè thãi quen lËp tr×nh tèt.................................................................. 105 10. Bµi tËp...........................................................................................................105 Ch¬ng §Þnh nghÜ to¸ Ch¬ng 4. §Þnh nghÜa to¸n tö trªn líp ¬ trª 1. Giíi thiÖu chung........................................................................................... 109 2. VÝ dô trªn líp sè phøc.................................................................................. 110 2.1 Hµm to¸n tö lµ hµm thµnh phÇn............................................................... 110 2.2 Hµm to¸n tö lµ hµm b¹n...........................................................................112 3. Kh¶ n¨ng vµ giíi h¹n cña ®Þnh nghÜa chång to¸n tö.....................................122 PhÇn lín to¸n tö trong C++ ®Òu cã thÓ ®Þnh nghÜa chång................................. 122 Trêng hîp c¸c to¸n tö ++ vµ --........................................................................ 123 Lùa chän gi÷a hµm thµnh phÇn vµ hµm b¹n...................................................... 124 4. ChiÕn lîc sö dông hµm to¸n tö................................................................... 124 C¸c phÐp to¸n mét ng«i..................................................................................... 124 C¸c phÐp to¸n hai ng«i...................................................................................... 124 C¸c phÐp g¸n..................................................................................................... 124 To¸n tö truy nhËp thµnh phÇn “->”....................................................................125 To¸n tö truy nhËp thµnh phÇn theo chØ sè..........................................................125 To¸n tö gäi hµm.................................................................................................125 5. Mét sè vÝ dô tiªu biÓu...................................................................................125 5.1 §Þnh nghÜa chång phÐp g¸n “ =”............................................................. 125 5.2 §Þnh nghÜa chång phÐp “[]".....................................................................130 5.3 §Þnh nghÜa chång >.....................................................................133 5.4 §Þnh nghÜa chång c¸c to¸n tö new vµ delete......................................... 135 5.5 PhÐp nh©n ma trËn vÐc t¬.........................................................................137 6. ChuyÓn ®æi kiÓu............................................................................................142 6.1 Hµm to¸n tö chuyÓn kiÓu Ðp buéc........................................................... 143 6.1.1 Hµm to¸n tö chuyÓn kiÓu trong lêi gäi hµm........................................145 -332-
- Môc lôc 6.1.2 Hµm to¸n tö chuyÓn kiÓu trong biÓu thøc........................................... 147 6.2 Hµm to¸n tö chuyÓn ®æi kiÓu c¬ së sang kiÓu líp................................... 148 6.2.1 Hµm thiÕt lËp trong c¸c chuyÓn ®æi kiÓu liªn tiÕp.............................. 150 6.2.2 Lùa chän gi÷a hµm thiÕt lËp vµ phÐp to¸n g¸n....................................150 6.2.3 Sö dông hµm thiÕt lËp ®Ó më réng ý nghÜa mét phÐp to¸n..................152 6.3 ChuyÓn ®æi kiÓu tõ líp nµy sang mét líp kh¸c........................................154 6.3.1 Hµm to¸n tö chuyÓn kiÓu b¾t buéc......................................................154 6.3.2 Hµm thiÕt lËp dïng lµm hµm to¸n tö...................................................156 7. Tãm t¾t......................................................................................................... 157 7.1 Ghi nhí.................................................................................................... 157 7.2 C¸c lçi thêng gÆp................................................................................... 158 7.3 Mét sè thãi quen lËp tr×nh tèt.................................................................. 158 8. Bµi tËp...........................................................................................................158 -333-
- Môc lôc Ch¬ng Ch¬ng 5. Kü thuËt thõa kÕ ¬ thuË thõ 1. Giíi thiÖu chung........................................................................................... 161 2. §¬n thõa kÕ.................................................................................................. 165 2.1 VÝ dô minh ho¹........................................................................................ 165 2.2 Truy nhËp c¸c thµnh phÇn cña líp c¬ së tõ líp dÉn xuÊt......................... 167 2.3 §Þnh nghÜa l¹i c¸c thµnh phÇn cña líp c¬ së trong líp dÉn xuÊt............. 168 2.4 TÝnh thõa kÕ trong líp dÉn xuÊt...............................................................168 2.4.1 Sù t¬ng thÝch cña ®èi tîng thuéc líp dÉn xuÊt víi ®èi tîng thuéc líp c¬ së 168 2.4.2 T¬ng thÝch gi÷a con trá líp dÉn xuÊt vµ con trá líp c¬ së................ 170 2.4.3 T¬ng thÝch gi÷a tham chiÕu líp dÉn xuÊt vµ tham chiÕu líp c¬ së... 172 2.5 Hµm thiÕt lËp trong líp dÉn xuÊt............................................................. 174 2.5.1 Hµm thiÕt lËp trong líp....................................................................... 174 2.5.2 Ph©n cÊp lêi gäi...................................................................................176 2.5.3 Hµm thiÕt lËp sao chÐp........................................................................177 2.6 C¸c kiÓu dÉn xuÊt kh¸c nhau................................................................... 181 2.6.1 DÉn xuÊt public.................................................................................. 182 2.6.2 DÉn xuÊt private.................................................................................182 2.6.3 DÉn xuÊt protected............................................................................ 182 B¶ng tæng kÕt c¸c kiÓu dÉn xuÊt....................................................................182 3. Hµm ¶o vµ tÝnh ®a h×nh.................................................................................183 3.1 §Æt vÊn ®Ò................................................................................................ 183 3.2 Tæng qu¸t vÒ hµm ¶o................................................................................190 3.2.1 Ph¹m vi cña khai b¸o virtual............................................................190 3.2.2 Kh«ng nhÊt thiÕt ph¶i ®Þnh nghÜa l¹i hµm virtual................................194 3.2.3 §Þnh nghÜa chång hµm ¶o................................................................... 197 3.2.4 Khai b¸o hµm ¶o ë mét líp bÊt kú trong s¬ ®å thõa kÕ...................... 197 3.2.5 Hµm huû bá ¶o....................................................................................201 3.3 Líp trõu tîng vµ hµm ¶o thuÇn tuý........................................................ 204 4. §a thõa kÕ.....................................................................................................205 4.1 §Æt vÊn ®Ò................................................................................................ 205 -334-
- Môc lôc 4.2 Líp c¬ së ¶o.............................................................................................210 4.3 Hµm thiÕt lËp vµ huû bá - víi líp ¶o........................................................213 4.4 Danh s¸ch mãc nèi c¸c ®èi tîng............................................................219 X©y dùng líp trõu tîng............................................................................... 219 4.5 T¹o danh s¸ch mãc nèi kh«ng ®ång nhÊt................................................ 227 5. Tãm t¾t......................................................................................................... 231 5.1 Ghi nhí.................................................................................................... 231 5.2 C¸c lçi thêng gÆp................................................................................... 232 5.3 Mét sè thãi quen lËp tr×nh tèt.................................................................. 232 6. Bµi tËp...........................................................................................................232 Ch¬ng 6. Khu«n h×nh Ch¬ ¬ng Khu« 1. Khu«n h×nh hµm........................................................................................... 233 1.1 Khu«n h×nh hµm lµ g×?.............................................................................233 1.2 T¹o mét khu«n h×nh hµm.........................................................................233 1.3 Sö dông khu«n h×nh hµm......................................................................... 234 1.3.1 Khu«n h×nh hµm cho kiÓu d÷ liÖu c¬ së..............................................234 1.3.2 Khu«n h×nh hµm min cho kiÓu char *................................................ 235 1.3.3 Khu«n h×nh hµm min víi kiÓu d÷ liÖu líp.......................................... 236 1.4 C¸c tham sè kiÓu cña khu«n h×nh hµm.................................................... 237 1.4.1 C¸c tham sè kiÓu trong ®Þnh nghÜa khu«n h×nh hµm.......................... 237 1.5 Gi¶i thuËt s¶n sinh mét hµm thÓ hiÖn...................................................... 240 1.6 Khëi t¹o c¸c biÕn cã kiÓu d÷ liÖu chuÈn..................................................241 1.7 C¸c h¹n chÕ cña khu«n h×nh hµm............................................................ 241 1.8 C¸c tham sè biÓu thøc cña mét khu«n h×nh hµm..................................... 242 1.9 §Þnh nghÜa chång c¸c khu«n h×nh hµm................................................... 244 1.10 Cô thÓ ho¸ c¸c hµm thÓ hiÖn.................................................................... 246 1.11 Tæng kÕt vÒ c¸c khu«n h×nh hµm.............................................................247 2. Khu«n h×nh líp.............................................................................................247 2.1 Khu«n h×nh líp lµ g×?.............................................................................. 247 2.2 T¹o mét khu«n h×nh líp...........................................................................248 -335-
- Môc lôc 2.3 Sö dông khu«n h×nh líp........................................................................... 249 2.4 VÝ dô sö dông khu«n h×nh líp................................................................. 250 2.5 C¸c tham sè trong khu«n h×nh líp...........................................................251 2.5.1 Sè lîng c¸c tham sè kiÓu trong mét khu«n h×nh líp.........................251 2.5.2 S¶n sinh mét líp thÓ hiÖn.................................................................... 251 2.6 C¸c tham sè biÓu thøc trong khu«n h×nh líp........................................... 252 2.7 Tæng qu¸t vÒ khu«n h×nh líp................................................................... 254 2.8 Cô thÓ ho¸ khu«n h×nh líp....................................................................255 2.9 Sù gièng nhau cña c¸c líp thÓ hiÖn..........................................................257 2.10 C¸c líp thÓ hiÖn vµ c¸c khai b¸o b¹n bÌ.................................................. 258 2.10.1 Khai b¸o c¸c líp b¹n hoÆc c¸c hµm b¹n th«ng thêng.................. 258 2.10.2 Khai b¸o b¹n bÌ cña mét thÓ hiÖn cña khu«n h×nh hµm, khu«n h×nh líp 258 2.10.3 Khai b¸o b¹n bÌ cña khu«n h×nh hµm, khu«n h×nh líp..................259 2.11 VÝ dô vÒ líp b¶ng cã hai chØ sè.............................................................259 3. Tãm t¾t......................................................................................................... 263 3.1 Ghi nhí.................................................................................................... 263 4. Bµi tËp...........................................................................................................263 Phô lôc 1. C¸c kªnh xuÊt nhËp Phô xuÊ nhË 1. Giíi thiÖu chung........................................................................................... 265 1.1 Kh¸i niÖm vÒ kªnh................................................................................... 265 1.2 Th viÖn c¸c líp vµo ra............................................................................ 265 2. Líp ostream..................................................................................................266 2.1 §Þnh nghÜa chång to¸n tö
- Môc lôc 3.1 §Þnh nghÜa chång to¸n tö “>>” trong líp istream................................ 270 3.2 Hµm thµnh phÇn get.................................................................................271 3.3 C¸c hµm thµnh phÇn getline vµ gcount...........................................272 3.4 Hµm thµnh phÇn read............................................................................ 272 3.5 Mét sè hµm kh¸c..................................................................................... 273 4. Tr¹ng th¸i lçi cña kªnh nhËp........................................................................ 273 4.1 C¸c cê lçi................................................................................................. 273 4.2 C¸c thao t¸c trªn c¸c bit lçi..................................................................... 274 4.2.1 §äc gi¸ trÞ........................................................................................... 274 4.2.2 Thay ®æi tr¹ng th¸i lçi.........................................................................274 4.3 §Þnh nghÜa c¸c to¸n tö () vµ !.................................................................. 274 5. Qu¶n lý ®Þnh d¹ng........................................................................................ 275 5.1 Tr¹ng th¸i ®Þnh d¹ng cña mét dßng......................................................... 275 5.2 Tõ tr¹ng th¸i ®Þnh d¹ng............................................................................276 5.3 Thao t¸c trªn tr¹ng th¸i ®Þnh d¹ng........................................................... 277 5.3.1 C¸c to¸n tö thao t¸c ®Þnh d¹ng kh«ng tham sè (TT§DKTS).............. 278 5.3.2 C¸c to¸n tö ®Þnh d¹ng cã tham sè(TT§DCTS)................................... 278 5.3.3 C¸c hµm thµnh phÇn............................................................................279 6. Liªn kÕt kªnh xuÊt/nhËp víi mét tËp tin....................................................... 280 6.1 Liªn kÕt xuÊt víi mét tËp tin....................................................................280 6.2 Liªn kÕt kªnh nhËp víi mét tËp tin.......................................................... 282 6.3 C¸c kh¶ n¨ng truy nhËp trùc tiÕp............................................................. 283 6.4 C¸c chÕ ®é më tËp tin kh¸c nhau............................................................. 286 Phô Phô lôc 2. Xö lý lçi 1. BÉy vµ b¾t lçi................................................................................................ 287 2. Ho¹t ®éng cña ch¬ng tr×nh khi mét lçi ph¸t sinh....................................... 290 3. Xö lý lçi trong líp øng dông........................................................................ 293 Phô lôc 3. Bµi to¸n quan hÖ gia ®×nh Phô to¸ ®×nh Phô lôc 4. M· nguån bµi to¸n quan hÖ gia ®×nh Phô nguå to¸ ®×nh -337-
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình C++ - Chương 6: Lập trình hướng đối tượng
12 p | 226 | 90
-
Giáo trình ngôn ngữ lập trình C++ - Chương 1
19 p | 240 | 65
-
Lập trình C- Bài tập 14
10 p | 92 | 26
-
Lập trình C- Bài tập 16
1 p | 106 | 24
-
Lập trình C- Bài tập 8
2 p | 78 | 23
-
Lập trình C- Bài tập 15
1 p | 84 | 20
-
Giáo trình C++_khái niệm cơ bản
19 p | 161 | 18
-
Bài giảng Lập trình C trên Windows - Nguyễn Đạt Thông
353 p | 105 | 17
-
Lập trình C- Bài tập 13
4 p | 85 | 17
-
C# và kiến trúc .NET.C# cơ bản - Bài 4
18 p | 119 | 16
-
Lập trình C- Bài tập 12
8 p | 92 | 15
-
C# và kiến trúc .NET.C# cơ bản - Bài 5
9 p | 100 | 15
-
C# và kiến trúc .NET.C# cơ bản - Bài 9
13 p | 138 | 14
-
C# và kiến trúc .NET.C# cơ bản - Bài 2
16 p | 119 | 12
-
C# và kiến trúc .NET.C# cơ bản - Bài 6
20 p | 100 | 10
-
C# và kiến trúc .NET.C# cơ bản - Bài 3
17 p | 99 | 10
-
Giáo trình C++_hàm bạn, định nghĩa phép toán cho lớp
17 p | 103 | 8
-
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C
15 p | 70 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn