Mục
l
ục
-329-
M
M
M
M
ụ
ụ
ụ
ụ
c
c
c
c
l
l
l
l
ụ
ụ
ụ
ụ
c
c
c
c
Ch
Ch
Ch
ì
ì
ì
nh
nh
nh
nh
h
h
h
h
ớ
ớ
ớ
ớ
ng
ng
ng
ng
đố
đố
đố
đố
i
i
i
i
t
t
t
p
p
p
gi
gi
gi
gi
ả
ả
ả
ả
i
i
i
i
quy
quy
quy
quy
ế
ế
ế
ế
t
t
t
t
b
b
b
i
i
i
1.Phơngpháplậptrình 1
2.Bàitoánquanhệgiađình 2
3.Lậptrìnhhớngđốitợng 6
3.1Mộtsốkháiniệm 7
3.2CácuđiểmcủaLTHĐT
8
3.3NhữngứngdụngcủaLTHĐT 9
4.Cácngônngữlậptrìnhhớngđốitợng 9
5.NgônngữlậptrìnhC++ 10
Ch
Ch
Ch
Ch
ơ
ơ
ơ
ơ
ng
ng
ng
ng
2.
2.
2.
2.
C
ng
c
c
c
c
ủ
ủ
ủ
ủ
a
a
a
a
C++
C++
C++
C++
so
so
so
so
v
v
v
v
ớ
ớ
ớ
ớ
i
::
20
4.Hàminline 21
5.Thamchiếu 23
5.1Thamchiếutớimộtbiến 23
5.2Truyềnthamsốchohàmbằngthamchiếu 25
5.3Giátrịtrảvềcủahàmlàthamchiếu
28
6.Địnhnghĩachồnghàm(Overloadingfunctions) 29
Trờnghợpcáchàmcómộtthamsố
31
Mục
l
ục
-330-
Trờnghợpcáchàmcónhiềuthamsố
32
7.Thamsốngầmđịnhtronglờigọihàm 32
8.Bổsungthêmcáctoántửquảnlýbộnhớđộng:newvàdelete 35
8.1Toántửcấpphátbộnhớđộngnew 35
8.2Toántửgiảiphóngvùngnhớđộng
delete
36
9.Tómtắt 38
9.1Ghinhớ 38
9.2Cáclỗithờnggặp 39
9.3Mộtsốthóiquenlậptrìnhtốt 39
10.Bàitập 39
Ch
ợ
ng
ng
ng
ng
v
v
v
v
à
à
à
à
l
l
l
l
ớ
ớ
ớ
ớ
p
p
p
p
1.Đốitợng 40
2.Lớp 42
2.1Khaibáolớp 42
2.1.1Tạođốitợng 44
2.1.2Cácthànhphầndữliệu
4.2.2Mộtsốquiđịnhđốivớihàmhuỷbỏ 71
4.3Sựcầnthiếtcủacáchàmthiếtlậpvàhuỷbỏ-lớpvectortrongkhônggiann
chiều
72
4.4Hàmthiếtlậpsaochép(
COPY
CONSTRUCTOR
) 75
4.4.1Cáctìnhhuốngsửdụnghàmthiếtlậpsaochép
75
4.4.2Hàmthiếtlậpsaochépngầmđịnh 76
4.4.3Khaibáovàđịnhnghĩahàmthiếtlậpsaochéptờngminh 76
4.4.4Hàmthiếtlậpsaochépcholớpvector 79
5.Cácthànhphầntĩnh(static) 83
5.1Thànhphầndữliệustatic 83
5.2Khởitạocácthànhphầndữliệutĩnh 84
5.3Cáchàmthànhphầnstatic 86
6.Đốitợnghằng(
CONSTANT
) 89
6.1Đốitợnghằng 89
6.2Hàmthànhphần
const
89
7.Hàmbạnvàlớpbạn
89
7.1Đặtvấnđề 89
ng
ng
ng
ng
4.
4.
4.
4.
Đị
Đị
Đị
Đị
nh
nh
nh
nh
ngh
ngh
ngh
ngh
ĩ
ĩ
ĩ
ĩ
a
a
a
a
to
to
l
l
l
l
ớ
ớ
ớ
ớ
p
p
p
p
1.Giớithiệuchung 109
2.Vídụtrênlớpsốphức 110
2.1Hàmtoántửlàhàmthànhphần 110
2.2Hàmtoántửlàhàmbạn 112
3.Khảnăngvàgiớihạncủađịnhnghĩachồngtoántử 122
PhầnlớntoántửtrongC++đềucóthểđịnhnghĩachồng 122
Trờnghợpcáctoántử++và 123
Lựachọngiữahàmthànhphầnvàhàmbạn 124
4.Chiếnlợcsửdụnghàmtoántử 124
Cácphéptoánmộtngôi 124
Cácphéptoánhaingôi 124
Cácphépgán 124
Toántửtruynhậpthànhphần-> 125
Toántửtruynhậpthànhphầntheochỉsố 125
Toántửgọihàm 125
5.Mộtsốvídụtiêubiểu 125
5.1Địnhnghĩachồngphépgán= 125
5.2Địnhnghĩachồngphép[]" 130
7.2Cáclỗithờnggặp 158
7.3Mộtsốthóiquenlậptrìnhtốt 158
8.Bàitập 158
Mục
l
ục
-334-
Ch
Ch
Ch
Ch
ơ
ơ
ơ
ơ
ng
ng
ng
ng
5.
5.
5.
5.
K
K
K
K
ỹ
ỹ
ỹ
ế
ế
ế
1.Giớithiệuchung 161
2.Đơnthừakế 165
2.1Vídụminhhoạ 165
2.2Truynhậpcácthànhphầncủalớpcơsởtừlớpdẫnxuất 167
2.3Địnhnghĩalạicácthànhphầncủalớpcơsởtronglớpdẫnxuất 168
2.4Tínhthừakếtronglớpdẫnxuất 168
2.4.1Sựtơngthíchcủađốitợngthuộclớpdẫnxuấtvớiđốitợngthuộclớp
cơsở168
2.4.2Tơngthíchgiữacontrỏlớpdẫnxuấtvàcontrỏlớpcơsở 170
2.4.3Tơngthíchgiữathamchiếulớpdẫnxuấtvàthamchiếulớpcơsở 172
2.5Hàmthiếtlậptronglớpdẫnxuất 174
2.5.1Hàmthiếtlậptronglớp 174
2.5.2Phâncấplờigọi 176
2.5.3Hàmthiếtlậpsaochép 177
2.6Cáckiểudẫnxuấtkhácnhau 181
2.6.1Dẫnxuấtpublic 182
2.6.2Dẫnxuấtprivate 182
2.6.3Dẫnxuấtprotected 182
Bảngtổngkếtcáckiểudẫnxuất 182
3.Hàmảovàtínhđahình 183
3.1Đặtvấnđề 183
3.2Tổngquátvềhàmảo 190
3.2.1Phạmvicủakhaibáovirtual 190
3.2.2Khôngnhấtthiếtphảiđịnhnghĩalạihàmvirtual 194
3.2.3Địnhnghĩachồnghàmảo 197
3.2.4Khaibáohàmảoởmộtlớpbấtkỳtrongsơđồthừakế 197
3.2.5Hàmhuỷbỏảo
ơ
ng
ng
ng
ng
6.
6.
6.
6.
Khu
Khu
Khu
Khu
ô
ô
ô
ô
n
n
n
n
h
h
h
h
ì
ì
ì
ì
nh
2.3Sửdụngkhuônhìnhlớp
249
2.4Vídụsửdụngkhuônhìnhlớp 250
2.5Cácthamsốtrongkhuônhìnhlớp 251
2.5.1Sốlợngcácthamsốkiểutrongmộtkhuônhìnhlớp 251
2.5.2Sảnsinhmộtlớpthểhiện 251
2.6Cácthamsốbiểuthứctrongkhuônhìnhlớp 252
2.7Tổngquátvềkhuônhìnhlớp 254
2.8Cụthểhoákhuônhìnhlớp 255
2.9Sựgiốngnhaucủacáclớpthểhiện
257
2.10Cáclớpthểhiệnvàcáckhaibáobạnbè 258
2.10.1Khaibáocáclớpbạnhoặccáchàmbạnthôngthờng 258
2.10.2Khaibáobạnbècủamộtthểhiệncủakhuônhìnhhàm,khuônhình
lớp258
2.10.3Khaibáobạnbècủakhuônhìnhhàm,khuônhìnhlớp 259
2.11Vídụvềlớpbảngcóhaichỉsố 259
3.Tómtắt 263
3.1Ghinhớ
263
4.Bàitập 263
Ph
Ph
Ph
Ph
ụ
ụ
k
k
k
k
ê
ê
ê
ê
nh
nh
nh
nh
xu
xu
xu
xu
ấ
ấ
ấ
ấ
t
t
t
t
nh
nh
nh
nh
ậ
ậ
4.Trạngtháilỗicủakênhnhập 273
4.1Cáccờlỗi 273
4.2Cácthaotáctrêncácbitlỗi 274
4.2.1Đọcgiátrị 274
4.2.2Thayđổitrạngtháilỗi 274
4.3Địnhnghĩacáctoántử()và! 274
5.Quảnlýđịnhdạng 275
5.1Trạngtháiđịnhdạngcủamộtdòng
275
5.2Từtrạngtháiđịnhdạng 276
5.3Thaotáctrêntrạngtháiđịnhdạng 277
5.3.1Cáctoántửthaotácđịnhdạngkhôngthamsố(TTĐDKTS) 278
5.3.2Cáctoántửđịnhdạngcóthamsố(TTĐDCTS) 278
5.3.3Cáchàmthànhphần 279
6.Liênkếtkênhxuất/nhậpvớimộttậptin 280
6.1Liênkếtxuấtvớimộttậptin 280
6.2Liênkếtkênhnhậpvớimộttậptin
282
6.3Cáckhảnăngtruynhậptrựctiếp 283
6.4Cácchếđộmởtậptinkhácnhau 286
Ph
Ph
Ph
Ph
ụ
ụ
ụ
ụ
ý
ý
l
l
l
l
ỗ
ỗ
ỗ
ỗ
i
i
i
i
1.Bẫyvàbắtlỗi 287
2.Hoạtđộngcủachơngtrìnhkhimộtlỗiphátsinh 290
3.Xửlýlỗitronglớpứngdụng 293
Ph
Ph
Ph
Ph
ụ
ụ
ụ
ụ
l
l
l
l
ụ
á
n
n
n
n
quan
quan
quan
quan
h
h
h
h
ệ
ệ
ệ
ệ
gia
gia
gia
gia
đì
đì
đì
đì
nh
nh
nh
nh
Ph
ã
ngu
ngu
ngu
ngu
ồ
ồ
ồ
ồ
n
n
n
n
b
b
b
b
à
à
à
à
i
i
i
i
to
to
to
to
á
nh