You are on page 1of 20

B GIAO THNG VN TI

TRNG I HC HNG HI
B MN: KHOA HOC MA Y TI NH
KHOA: CNG NGH THNG TIN

BI GING
LP TRNH HNG I TNG V C++

TN HC PHN : Lp trnh hng i tng v C++


M HC PHN : 17209
TRNH O TO : I HC CHNH QUY
DNG CHO SV NGNH : CNG NGH THNG TIN

HI PHNG - 2008

M t vn tt ni dung v khi lng hc phn


Tn hc phn: Lp trnh hng i tng v C++.
B mn ph trch ging dy: Khoa hc my tnh.
M hc phn: 17209
TS tit
75

L thuyt
45

Thc hnh/ Xemina


30

T hc
0

Loi hc phn : 2
Khoa ph trch: CNTT
Tng s TC: 4
Bi tp ln
0

n mn hc
0

iu kin tin quyt:


Sinh vin phi hc v thi t cc hc phn sau mi c ng k hc hc phn ny:
K thut lp trnh Pascal, K thut lp trnh C.
Mc tiu ca hc phn:
Cung cp kin thc ca phng php lp trnh hng i tng v rn luyn k
nng lp trnh .
Ni dung ch yu:
-

Nhng m rng ca lp trnh hng i tng.

i tng v lp.

ng gi, tha k, a hnh.

Bn mu, th vin STL

Ni dung chi tit:


TN CHNG MC
Chng 1: L p trin
h hng i t ng va

TS
3

PHN PHI S TIT


LT Thc hnh BT
3

KT

ngn ng C++

1.1 u im ca lp trnh hng i tng


1.2 Gii thiu ngn ng C++

Chng 2: Nhng khai ni m m u

Chng 3: Con tro, tham chi u va ham

18

2.1 Ci t ngn ng C++


2.2 Cu trc mt chng trnh C++
2.3 Kiu d liu c s
2.4 Quy tc s dng t kha, tn chun, tn t
t.
2.5 Cc ch th gn, so snh, iu kin nu th ..
3.1 Khai bo hm con, hm chnh.
3.2 Quy tc i kiu d liu, kiu tr.
3.3 nh ngha chng hm, tham s ngm nh..
3.5 Tham chiu.

Chng 4: Cc dong vo ra trong C++


4.1 i tng vo ra cout, cin
4.2 y dng d liu ln mn hnh
4.3 Nhp dng d liu t bn phm
4.4 nh dng dng d liu hin th
4.5 Vo ra vi tp

Chng 5: i tng v Lp

5.1 nh ngha i tng


5.2 Khai bo lp
5.3 Hm thit lp, hu b
5.4 Thnh phn tnh, hm bn, lp bn
5.5 nh ngha chng ton t
Chng 6: Tha k
6.1 Lp c s, lp dn xut
6.2 Quy tc tha k
6.3 Tng thch lp c s v lp dn xut
6.4 n tha k, a tha k

Chng 7: Rng buc ng v a th

13

7.1 Hm o, rng buc tnh, ng


7.2 a th

Chng 8: Bn mu
8.1 Hm bn mu
8.2 u khuyt im ca hm bn mu
8.3 Lp bn mu

Nhim v ca sinh vin: Ln lp y v chp hnh mi quy nh ca Nh trng.


Ti liu hc tp:
1. Tn tc gi. Tn sch. Nh xut bn. Nm xut bn.
2. Phm Vn t. K thut lp trnh hng i tng. NXB KHKT. 1998
3. Mt s website lin quan.
Hnh thc v tiu chun nh gi sinh vin:
- Thi vit hoc thi thc hnh.
- Sinh vin phi bo m cc iu kin theo Quy ch ca Nh trng v ca B.
Thang im : Thang im ch A,B,C,D,F.
im nh gi hc phn: Z=0,3X+0,7Y.
Bi ging ny l ti liu chnh thc v thng nht ca B mn Khoa hc My tnh,
Khoa Cng ngh Thng tin v c dng ging dy cho sinh vin.
Ngy ph duyt:

/20

Trng B mn: ThS. Nguyn Hu Tun (k v ghi r h tn)

ii

MC LC
CHNG I: LP TRI NH HNG I TNG VA NGN NG C++ ................... 1
1. S pht trin ca cc k thut lp trnh.......................................................................... 1
1.1 L p trin h khng co c u truc (hay l p trin h tuy n tin h) ............................................ 1
1.2 L p trinh thu tu c hay l p trinh co c u truc ............................................................... 1
1.3 L p trin h module ...................................................................................................... 3
1.4 L p trin h hng i tng ....................................................................................... 4
2. M t s khai ni m c bn ca lp trnh hng i tng ............................................... 5
2.1 Ki u d li u tru tng ADT(Astract Data Type) .................................................. 5
2.2 i tng (Objects) v lp (Classes) ...................................................................... 5
2.3 K tha (Inheritance) ............................................................................................... 6
2.4 Dynamic Binding (rng buc ng) v Porlymorphism (a xa ho c a th ) .......... 6
3. Ngn ng l p trin h C++ v OOP. .................................................................................. 7
3.1 S pht trin ca cc ngn ng l p trin h hng i tng...................................... 7
3.2 Ngn ng l p trinh C++. .......................................................................................... 8
4. Bi tp ............................................................................................................................ 8
CHNG II: NHNG KHAI NIM M U .............................................................. 9
1. Chng trinh u tin .................................................................................................... 9
1.1 Qu trnh bin dch mt chng trin h C++ ............................................................. 9
1.2 Chng trin h u tin. ........................................................................................... 13
2. Bi n, h ng va t m hoa t ng cua cac bi n ................................................................... 15
2.1 Cu php khai bo bin (variable declaration) ........................................................ 15
2.2 T m hoa t ng cua cac bi n .................................................................................. 16
2.3 Khai bao bi n ngay trong cu phap cua cac cu l nh i u khi n ............................ 16
2.4 Cc kiu bin ......................................................................................................... 17
2.5 Lin k t bi n khi bin dich
.................................................................................... 18
2.6 Cc hng ................................................................................................................ 18
3. Hm trong C++ ............................................................................................................ 19
4. Cc cu truc iu khin ................................................................................................ 20
4.1 Cu l nh if-else ...................................................................................................... 20
4.2 Vong lp khng xc nh while ............................................................................. 20
4.3 Vong lp khng xc nh do while ..................................................................... 21
4.4 Vong lp xc nh for ............................................................................................ 21
4.5 Cc t kha break v continue ............................................................................... 22
4.6 Cu l nh la cho n switch ....................................................................................... 22
4.7 Cu l nh goto ......................................................................................................... 23
4.8 qui ..................................................................................................................... 23
iii

5. Cc kiu d li u c bn ca C++ ................................................................................. 23


6. M t s toan t trong C++ ............................................................................................ 25
6.1 Ton t gn (assignment operator) ........................................................................ 25
6.2 Cc ton t ton hc .............................................................................................. 25
6.3 Cc ton t quan h ................................................................................................ 25
6.4 Cc ton t logic .................................................................................................... 26
6.5 Cc ton t bitwise ................................................................................................ 26
6.6 Cc ton t dch ..................................................................................................... 26
6.7 Cc ton t m t ngi .............................................................................................. 26
6.8 Ton t 3 ngi ........................................................................................................ 26
6.9 Ton t d u ph y .................................................................................................... 27
6.10 Cc li thng g p khi s dng cc ton t......................................................... 27
6.11 Ton t chuy n ki u ............................................................................................. 27
6.12 Ton t sizeof. ...................................................................................................... 28
7. Cc kiu d li u ngi dung inh
nghia ...................................................................... 28
8. Bi tp .......................................................................................................................... 31
CHNG III: CON TRO, THAM CHIU VA HA M................................................... 34
1. Hm trong C++ ............................................................................................................ 34
1.1 Nguyn mu va inh
ngha hm ............................................................................ 34
1.2 Hm v cc bin ..................................................................................................... 34
1.3 Truy n tham s ...................................................................................................... 34
1.4 Ch ng ham (overload) v tham s mc nh ca hm ........................................... 35
1.5 Cc vn khc ..................................................................................................... 36
2. Con tro, hm v mng .................................................................................................. 37
3. Hm v x l xu ......................................................................................................... 38
4. Bi tp .......................................................................................................................... 38
CHNG IV: CAC DNG VO RA TRONG C++ ..................................................... 40
1. T ng quan v cac lu ng vao ra cua C++ ..................................................................... 40
2. Cc lung v cc b m ............................................................................................. 41
3. Cc i tng vao ra chu n ......................................................................................... 41
4. inh
hng la i (Redirection) ....................................................................................... 41
5. Nh p d li u vi cin .................................................................................................... 42
6. Cc hm thanh vin khac cua cin ................................................................................. 42
7. K t xu t d li u vi cout ............................................................................................. 45
8. Cc dong vo ra v hm printf ..................................................................................... 46
9. Vo ra d li u vi cac file ............................................................................................ 46
10. File text va file nhi phn ............................................................................................ 48
iv

11. Tm kim trong cc dong vo ra ................................................................................ 48


12. stringstream ................................................................................................................ 49
13. Bi tp ........................................................................................................................ 52
CHNG V: I TNG VA LP. ............................................................................. 54
1. Tru tng d li u ....................................................................................................... 54
2. Th nao la m t i tng? ........................................................................................... 54
3. Cc lp va cac i tng ............................................................................................. 55
4. Con tro va mang cac i tng .................................................................................... 58
5. Khai bao cac lp vi cac file header ............................................................................ 59
6. Ki m soat vi c truy c p ti cac bi n va phng thc cua lp ..................................... 61
7. Cc hm bn v cc lp ba n ........................................................................................ 62
8. Con tro this................................................................................................................... 66
9. Khi ta o cac i tng cua lp thng qua cac ham c u t .......................................... 67
10. Hy t ........................................................................................................................ 72
11. C u t copy ................................................................................................................ 76
12. i tng h ng va cac ham thanh vin h ng ............................................................. 78
13. Cc thnh vin tnh ca lp ....................................................................................... 79
14. S dng cc i tng trong vai tro l tham s ca hm........................................... 80
15. Cc i tng ch ng nhau: Cc lp la thanh vin cua cac lp khac. ........................ 82
16. Ch ng toan t............................................................................................................. 84
17. Bi tp ........................................................................................................................ 91
CHNG VI: K THA (INHERITANCE)................................................................. 94
1. S dng li ma chng trin h........................................................................................ 94
2. S dng li ma chng trin h trong OOP ..................................................................... 94
3. Cu php k tha ........................................................................................................... 94
4. inh
ngha li cc thnh vin ca lp c s ................................................................ 96
5. Ki m soat truy c p ....................................................................................................... 98
6. Cc kiu k tha......................................................................................................... 101
6.1 K tha public ...................................................................................................... 101
6.2. K tha private.................................................................................................... 101
6.3 K tha protected ................................................................................................. 102
7. inh
nghia la i cac c ta truy c p .............................................................................. 102
8. Cc hm khng th k tha........................................................................................ 103
9. Cc hm cu t v k tha ......................................................................................... 103
10. Composition va Inheritance ..................................................................................... 105
11. a k tha ................................................................................................................ 107
12. L p la i lp c s trong a k tha va lp c s o .................................................. 108
v

13. Con tro va cac i tng .......................................................................................... 109


14. Con tro va k tha .................................................................................................... 116
15. Bi tp ...................................................................................................................... 117
CHNG VII: RNG BUC NG V A TH ................................................... 118
1. M t s c i m cua rang bu c ng v a th ......................................................... 118
1.1 Rng buc ng ................................................................................................... 118
1.2 a th - Polymorphism ....................................................................................... 118
2. Cc hm thnh vin bnh thng c truy c p qua cac con tro ............................... 119
3. Cc hm thnh vin o c truy c p qua cac con tr .............................................. 120
4. Rng buc ng ......................................................................................................... 122
4.1 Rng buc ng lm vic nh th nao ................................................................. 122
4.2 Khng s dng con tr this .................................................................................. 124
5. Danh sach lin k t cac i tng va a th ............................................................... 124
6. Cc lp tru tng abstract class ............................................................................ 128
7. Cc hm o thc s .................................................................................................... 129
7.1 V d 1 ................................................................................................................. 129
7.2 V d 2 ................................................................................................................. 131
8. C u t o v hy t o ............................................................................................... 135
9. Hm ton t o ........................................................................................................... 136
10. Bi tp ...................................................................................................................... 139
CHNG VIII: BN MU (TEMPLATE) ................................................................. 140
1. Cc lp bn mu ........................................................................................................ 140
1.1 Cc bn mu v th nghim ................................................................................. 141
1.2 Cc thnh phn tnh ............................................................................................. 146
1.3 Cc lp ba n va lp tr giup.................................................................................. 147
1.4 Cc tham s bn mu ........................................................................................... 149
1.5 Cc lp thu c tin h ................................................................................................ 151
1.6 Cc lp cha (bn mu) chu n ............................................................................ 154
2. Cc hm bn mu ....................................................................................................... 154
2.1 Cc nh ngha v th nghim .............................................................................. 154
2.2 Cc hm chun chung th vi n thu t toan ........................................................ 157
3. Bi tp ........................................................................................................................ 157
TI LIU THAM KHO ............................................................................................... 158
THI THAM KHO ................................................................................................... 159

vi

CHNG I: LP TRI NH HNG I TNG VA NGN NG C++


1. S phat tri n cua cac ky thu t l p trin
h
Ph n nay trinh bay v m t s ky thu t hay p hng phap l p trinh c phat tri n
gii quyt cc vn trong Tin hc k t khi my tnh ra i . S phat tri n cua cac ky thu t
l p trin h lin quan ch t che ti s phat tri n ph n cng cua may vi tin h cung nh v i c ng
dng my tnh vo gii quyt cc vn trong thc t . Chung ta c th chia cc phng
php lp trnh thnh cc kiu sau:
+ L p trin h khng co c u truc
+ L p trin h hng thu tu c
+ L p trinh theo ki u module hoa
+ L p trinh hng i t ng
Chung ta se ln lt xem xet cc k thut lp trnh ny.
1.1 L p trin
h khng co c u truc (hay l p trin
h tuy n tinh)
Thng thng mo i ngi b t u ho c l p trinh b ng cach vi t cac chng trnh nh
v n gin ch cha mt chng trnh chnh . y mt chng trnh chnh c ngha l
m t t p cac l nh ho c cu l nh lam vi c vi cac d li u toan cu c trong ca chng trin h (cc
bi n dung trong chng trin h l cc bin ton cc). Chung ta c th minh ho bng hnh ve
sau y:

L p trin
h khng co c u truc. Chng trin
h chinh
thao tac trc ti p trn cac d liu toan cu c
M t s nh c i m cua l p trin h khng co c u truc:
+ L p trinh khng co c u truc khng co kha nng ki m soat tinh th y c cua d
li u. Mi d liu trong chng trnh u l bin ton cc do c th b thay i bi bt
ky phn no ca chng trnh.
+ Vi c khng ki m soat c tin h th y c cua d li u dn n cac kho khn trong
vi c g li chng trin h, c bi t la cac chng trin h ln.
+ K thut lp trnh khng c cu truc c rt nhiu bt li ln khi chng trnh
ln. V d nu chung ta cn thc hin li mt on cu lnh trn mt tp d liu khc th
bu c phai copy oa n l nh o ti vi tri trong chng trin h ma chung ta mu n thc hi n
.
i u nay lam nay sinh y tng trich ra cac o n lnh thng xuyn cn thc hin , t
tn cho chung va a ra m t ky thu t cho phep go i va tra v cac gia tri t cac thu tu c nay .
1.2 L p trin
h thu tu c hay l p trin
h co c u truc
Vi l p trin h thu tu c hay hng th tc chung ta c th nhm cc cu lnh thng
xuyn thc hi n trong chng trin h chin h la i m t ch va t tn oa n cu l nh o thanh
1

m t thu tu c. M t li go i ti thu tu c se c s du ng thc hi n oa n cu l nh o. Sau khi


th tc thc hin xong iu khin trong chng trnh c tr v ngay sau v tr li gi ti
th tc trong chng trnh chnh . Vi cac c ch truy n tham s cho thu tu c chung ta co
cc chng trnh con . M t chn g trin h chin h bao g m nhi u chng trin h con va cac
chng trin h c vi t mang tin h c u truc cao hn , ng thi cung it li hn . N u m t
chng trinh con la ung n thi k t qua thc hi n tra v lun ung va chung ta khn g c n
phi quan tm ti cc chi tit bn trong ca th tc . Con nu c li chung ta c th thu hep
phm vi g li trong cc chng trnh con cha c chng minh l ung n , y c
xem nh tru t ng ham va la n n tang cho l p trin h thu tu c.
M t chng trinh chinh vi l p trinh thu tu c co th c xem la t p h p cac li go i
th tc.

L p trin
h thu tu c. Sau khi chng trin
h con th c hin xong i u
khi n c tra v ngay sau vi tri
li go i ti chng trin
h con
Chng trin h chin h co nhi m vu truy n cac d li u cho cac li go i cu th
, d li u
c x ly cu c b trong chng trinh con sau o cac k t qua thc hi n nay c tra v cho
chng trinh chnh. Nh v y lu ng d li u co th c minh ho a nh la m t thi phn
c p, m t cy:

L p trin
h hng thu tu c. Chng trin
h chinh ph i h p cac li
gi ti cc th tc vi cc d liu thch hp l cc tham s
L p trinh hng thu tu c la m t ky thu t l p trinh co nhi u u i m
. Khi nim
chng trin h con la m t y tng r t hay , n cho phep mt chng trnh ln c th c
chia thanh nhi u chng trin h con nho hn , o o d vi t hn va it li hn . co th s
dng c cc th tc chung hoc mt nhm cc th tc trong cc chng trnh khc
,
ngi ta a phat minh ra m t ky thu t l p trinh mi
, o la ky thu t l p trinh theo ki u
module.

1.3 L p trin
h module
Trong l p trin h module cac thu tu c co cung m t chc nng chung se c nhom la i
vi nhau ta o thanh m t module ring bi t . M t chng trin h se khng chi bao g m m t
ph n n le . N c chia thnh mt vi ph n nho hn tng tac vi nhau qua cac li go i
th tc v to thnh ton b chng trnh.

L p trin
h module. Chng trin
h chinh la s k t h p gia cac li go i ti cac
th tc trong cc module ring bit vi cc d liu thich h p
Mi module co d li u ring cua no . i u nay cho phep cac module co th ki m soat
cc d liu ring ca n bng cc li gi ti cc th tc trong module . Tuy nhin mi
module chi xu t hi n nhi u nh t m t l n trong ca chng trin h.
Y u i m cua l p trin h thu tu c va l p trin h module hoa:
+ Khi phc ta p cua chng trinh tng ln s phu thu c cua no vao cac ki u d
li u c ban ma no x ly cung tng theo . V n tr nn ro rang r ng c u truc d li u s
dng trong chng trnh cung quan trng khng kem cc phep ton thc hin trn chung .
i u nay cang l ro khi kic h thc chng trin h tng . Cc kiu d liu c x l nhiu
trong cac thu tu c cua m t chng trinh co c u truc . Do o khi thay i cai t cua m t ki u
d li u se dn n nhi u thay i trong cac thu tu c s du ng no .
+ M t nh c i m na la khi c n dung nhi u nhom lam vi c xy
dng m t
chng trinh chung . Trong l p trinh co c u truc mi ngi se c giao xy dng m t s
th tc v kiu d liu . Nhng l p trin h vin x ly cac thu tu c khac nhau nhng la i co lin
quan ti cac ki u d li u dung chung nn n u m t ngi thay i ki u d li u thi se lam
nh hng ti cng vic ca nhiu ngi khc , c bi t la khi co sai sot trong vi c lin la c
gia cac thanh vin cua nhom .
+ Vi c phat tri n cac ph m m m m t nhi u thi gian tp trung xy dng li cc cu
truc d liu c bn . Khi xy dng m t chng trin h mi trong l p trin h co c u truc l p
trnh vin thng phi xy dng li cc cu truc d liu c bn cho ph hp vi bi ton v
i u nay i khi r t m t thi gian.

1.4 L p trin
h hng i t ng
Trong l p trin h hng i t ng trong mi chng trin h chung ta co m t s cac i
t ng (object) c th tng tc vi nhau , thu c cac lp (class) khc nhau, mi i t ng
t quan ly l y cac d li u cua ring chung .

L p trin h hng i t ng. Cc i tng tng tc vi nhau bng


cch gi cc thng ip.
Chng trinh chinh se bao g m m t s i t ng la th hi n (instance) ca cc lp ,
cc i tng ny tng tc vi nhau thc hin cc chc nng ca chng trnh . Cc lp
trong l p trin h hng i t ng co th xem nh la m t s tru t ng mc cao hn cua
cc cu truc (struct hay record) hay ki u d li u do ngi dung inh
nghia trong cac ngn
ng l p trinh co c u truc vi s tich h p ca cac toan t va d li u trn cac ki u o .
Cc u im ca lp trnh hng i tng:
+ L p trinh hng i t ng ra i a giai quy t c nhi u nh c i m t n ta i
trong l p trin h co c u truc . Trong l p trin h OOP co it li hn va vi c g li cung n gian
hn, ng thi l p trin h theo nhom co th thc hi n r t hi u qua . It li la m t trong cac u
i m chinh cua OOP vi theo th ng k thi vi c bao tri h th ng ph n m m sau khi giao cho
ngi dung chi m ti 70% gi thnh phn mm.
+ Vi c thay i cac cai t chi ti t bn di trong l p trin h
OOP khng lam anh
hng ti cac ph n khac cua chng trinh do o vi c m r ng qui m cua m t chng
trnh d dng hn, ng thi lam giam thi gian c n thi t phat tri n ph n m m .
+ Vi khai ni m k tha cac l p trinh vin co th xy dng cac chng trinh t cac
ph n m m sn co.
+ OOP co tin h kha chuy n cao . M t chng trin h vi t trn m t h th ng n n (ch ng
hn Windows) c th chy trn nhiu h thng nn khc nhau (ch ng ha n Linux, Unix).
+ OOP co hi u qua cao . Thc t cho th y cac h th ng c xy dng b ng OOP co
hi u nng cao.

2. M t s khai nim
c ban cua l p trin
h hng i t ng
2.1 Ki u d liu tru t ng ADT(Astract Data Type)
M t s ngi inh
nghia OOP la l p trinh vi cac ki u d li u tru t ng va cac m i
quan h gia chung . Trong ph n nay chung ta se xem xet cac ki u d li u tru t ng nh
l mt khi nim c bn ca OOP v s dng mt s v d minh ha.
inh
nghia v ki u d li u tru t ng : M t ki u d li u tru t ng la m t m hin h
ton hc ca cc i tng d liu to thnh mt kiu d liu v cc ton t
(phep ton)
thao tac trn cac i t ng o. Chu l trong nh ngha ny cc ton t thao tc trn cc
i t ng d li u g n li n vi cac i t ng ta o thanh m t ki u d li u tru t ng . c t
v m t ki u d li u tru t ng khng co b t ky m t chi ti t cu th nao v cai t bn trong
ca kiu d liu. Vi c cai t m t ki u d li u tru t ng oi hoi m t qua trin h chuy n i
t c ta cua no sang m t cai t cu th trn m t ngn ng l p trin h cu th . i u nay cho
phep chung ta phn bit cc ADT vi cc thut ng kiu d liu (data type) v cu truc d
li u (data structure). Thu t ng ki u d li u c p ti m t cai t cu th
(c th l kiu
built in ho c do ngi dung inh
ngha) ca mt m hnh ton hc c c t bi mt

ADT. C u truc d li u c p ti m t t p cac bi n co cung ki u c g n k t vi nhau theo


m t cach thc xac inh
nao o.
V d v kiu d liu tru tng: S nguyn.
Ki u d li u tru t ng s nguyn: ADT Integer:
D liu:
m t t p cac ch s va m t d u ti n t la + ho c -. Chung ta k hiu c s l
N.
Cc ton t:
constructor: khi ta o m t s nguyn
sub(k): tr v hiu N k.
add(k): tr v tng N + k.

End
2.2 i tng (Objects) v lp (Classes)
Trong m t chng trin h hng i t ng chung ta co cac i t ng . Cc i tng
ny l i din cho cc i tng thc trong thc t . C th coi kh i ni m i t ng trong
OOP chinh la cac ki u d li u trong cac ngn ng l p trinh co c u truc . Mi m t i t ng
c cc d liu ring ca n v c gi l cc member variable hoc l cc data member .
Cc ton t thao tc trn cc d liu ny c gi l cc member function . Mi m t i
t ng la th hi n (instance) ca mt lp. Nh v y lp la a i di n cho cac i t ng co cac
member function gi ng nhau va cac data member cung ki u . Lp l mt s tru tng ha
ca khi nim i tng. Tuy nhin lp khng phai la m t ADT , n l mt ci t ca mt
c ta ADT. Cc i tng ca cng mt lp c th chia se cc d liu dng chung , d li u
ki u nay c gi l class variable.

2.3 K tha (Inheritance)


Khi nim k tha ny sinh t nhu cu s dng li cc thnh phn phn mm pht
tri n cac ph n m m mi ho c m r ng chc nng cua ph n m m hi n ta i . K tha la m t
c ch cho phep cac i t ng cua m t lp co th truy c p ti cac member variable va
function cua m t lp a c xy dng trc o ma khng c n xy dng la i cac thanh
ph n o. i u nay cho phep chung ta co th ta o r a cac lp mi la m t m r ng ho c ca bi t
ha ca mt lp sn c . Lp mi (gi l derived class ) k tha t lp cu (gi l lp c s
base class). Cc ngn ng lp trnh hng i tng c th h tr khi nim a k tha cho
phep mt lp c th k tha t nhiu lp c s . Lp k tha derived class co th co thm
cc data member mi hoc cc member function mi . Thm vao o lp k tha co th ti n
hnh nh ngha li mt hm ca lp c s va trong trng h p nay ngi ta noi r ng lp
k tha a overload ham thanh vin cua lp c s .
2.4 Dynamic Binding (rng buc ng) v Porlymorphism (a xa ho c a th )
Chung ta ly mt v d minh ho cho hai k hi nim ny . Gi s chung ta c mt
lp c s la Shape , hai lp k tha t lp Shape la Circle va Rectange . Lp Shape la m t
lp tru t ng co m t member function tru t ng la draw (). Hai lp Circle va Rectange
thc hi n overload la i ham draw cua lp Shape vi cac chi ti t cai t khac nhau ch ng ha n
vi lp Circle ham draw se ve m t vong tron con vi lp Rectange thi se ve m t hin h ch
nh t. V chung ta c mt on chng trnh chnh hp l nh sau:
int main()
{
Shape shape_list[4];
int choose;
int i;
for(i=0;i<4;i++)
{
cout << Ngay muon ve hinh tron(0) hay hinh chu nhat(1);
cin >> choose;
if(choose==0)
{
shape_list[i] = new Circle();
}else{
shape_list[i] = new Rectange();
}
}
for(i=0;i<4;i++)
{
6

shape_list[i]->draw();
}
}
Khi bin dich
chng trinh nay thanh ma thc hi n (file .exe) trnh bin dch khng
th xac inh
c trong mang shape _list thi ph n t nao la Circle ph n t nao la Rec tange
v do khng th xc nh c phin bn no ca hm draw se c gi thc hin . Vi c
gi ti phin bn no ca hm draw thc hin se c quyt nh ti thi im thc
hi n chng trin h, sau khi a bin dich
v iu ny c gi l dynamic binding hoc late
binding. Ng c la i n u vi c xac inh
phin ban nao se c go i thc hi n tng ng vi
d li u g n vi no c quy t inh
static
ngay trong khi bin dich
thi ngi ta go i o la
binding. V d ny cung cung cp cho chung ta mt minh ha v kh nng a th
(polymorphism). Khi nim a th c dng ch kh nng ca mt thng ip c th
c gi ti cho cac i t ng cua nhi u lp khac n hau ta i thi i m thc hi n chng
trnh. Chung ta thy ro li gi ti hm draw se c gi ti cho cc i tng ca hai lp
Circle va Rectange ta i thi i m chng trinh c thc hi n . Ngoi cc khi nim c bn
trn OOP con co thm m t s khai ni m khac ch ng ha n nh name space va exception
handling nhng khng phai la cac khai ni m ban ch t .
3. Ngn ng l p trin
h C++ v OOP.
Gi ng nh b t ky m t ngn ng nao cua con ngi
, m t ngn ng l p trnh l
phng ti n din ta cac khai ni m , tng. Vi c phat tri n cac chng trinh hay ph n
m m la qua trin h m hin h hoa cac tra ng thai t nhin cua th gii thc va xy dng cac
chng trin h da trn cac m hnh .
Cc chng trnh thc hin chc nng m t phng php ci t ca m hnh.

Cc th h ngn ng lp trnh : C th phn chia cc th h ngn ng lp trnh thnh


4 th h :
1: vo nm 1954 1958 (Fortran I) vi c i m la cac bi u thc toan ho c
2: vo nm 1959 1961 (Fortran II, Cobol) vi cac thu tu c
3: vo nhng nm 1962 1970 (Pascal, Simula) vi c trng la cac kh i, cc lp
4: ang phat tri n cha co dn chng thc t .
Cc ngn ng ny ngy cng cch xa ngn ng my v cc trnh bin dch ca chung
ngy cng phi lm vic nhiu hn.
3.1 S phat tri n cua cac ngn ng l p trin
h hng i t ng
1967 Simula
1970 to 1983 Smalltalk
7

1979 Common LISP Object System


1980 Stroustrup starts on C++
1981 Byte Smalltalk issue
1983 Objective C
1986 C++
1987 Actor, Eiffel
1991 C++ release 3.0
1995 Java
1983 to 1989 Language books with OO concepts
1989 to 1992 Object-oriented design books
1992 to present Object-oriented methodology books
Cc ngn ng lp trnh khc
Java
Self
Python
Perl
Prograph
Modula 3
Oberon
Smalltalk Venders
ParcPlace, Digitalk, Quasar
Prolog++
Ada 9X
Object Pascal (Delphi)
Object X, X = fortran, cobal, etc.
C#.
Nh v y la co r t nhi u ngn ng l p trinh hng i t ng a ra i va chi m u
th trong s chung la C ++ v Java. Mi ngn ng u co c i m ring cua no va thic h
h p vi cac lin h vc khac nhau nhng co le C ++ l ngn ng cai t nhi u c i m cua
OOP nh t.
3.2 Ngn ng l p trin
h C++.
C++ l mt ngn ng lp trnh hng i tng c Bjarne Stroustrup
(AT & T
Bell Lab ) (gii thng ACM Grace Murray Hopper nm 1994) pht trin t ngn ng C.
C++ k tha cu phap va m t s c i m u vi t cua C : v d nh x l con tr , th vi n
cc hm phong phu a dng , tnh kh chuyn cao , chng trin h cha y nhanh . Tuy nhin
v ban ch t thi C++ khc hon ton so vi C, i u nay la do C++ l mt ngn ng lp trnh
hng i t ng.
4. Bi tp
Bi tp 1: Download b cng c DevCpp t Internet v ci t trn my tnh ca
mnh, vit chng trnh u tin, thc hin bin dch v chy th.
Bi tp 2: Download b cng c Visual Studio t website ca Microsoft v ci t
trn my tnh ca mnh, vit chng trnh, thc hin bin dch v chy th.
8

CHNG II: NH NG KHAI NIM M U


1. Chng trin
h u tin
1.1 Qu trnh bin dich
m t chng trin
h C++
T t ca cac ngn ng trn may tinh u c dich
t m t da ng nao o ma con ngi
c th hiu c mt cch d dng (cc file ma ngun c vit bng mt ngn ng bc
cao) sang da ng co th thc hin c trn my tnh (cc lnh di dng ngn ng my ).
Cc chng trnh thc hin qu trnh ny chia thnh hai dng c gi tn l cc trnh
thng dich
(interpreter) v cc trnh bin dch (compiler).
Trnh thng dich: M t trin h thng dich
se dich
ma ngu n thanh cac hanh ng
(activity), cc hnh ng ny c th bao gm mt nhm cc lnh my v tin hnh thc
hi n ngay l p tc cac hanh ng nay . V d nh BASIC l mt ngn ng in hnh cho cc
ngn ng thng dich
. BASIC c i n thng dich
tng dong l nh thc hi n va sau o qun
ngay l p tc dong l nh va thng dich
. i u nay lam cho qua trinh thc hi n ca m t

chng trin h ch m vi b thng di c h phai ti n hanh dich


la i cac oa n ma trung l p . BASIC
ngy nay a thm vo qua trnh bin dch ci thin tc ca chng trnh
. Cc b
thng dich
hi n a i ch ng ha n nh Python , ti n hanh dich
toan b chng trinh qua m t
ngn ng trung gian sau o thc hi n b ng m t b thng dich
. Cc
nhanh hn r t nhi u
ngn ng lam vi c theo ki u thng dich
th
ng
co
m
s
ha
ch
nh
t
i
nh
khi
xy
d
ng

t
n

cc d n ln (C le ch duy nht Python l mt ngoi l ). B thng dich


c n phai lun
c lu trong b nh thc hi n cac ma chng trin h , v thm ch ngay c b thng
dch c tc nhanh nht cung khng th ci thin c hon ton cc hn ch tc .Hu
h t cac b thng dich
u yu c u toan b ma ngu n c n phai c thng dich
m t l n duy
nh t. i u nay khng nhng dn n cac ha n ch v kic h thc cua chng trin h ma con
to ra cc li rt kh g ri nu nh n gn ng khng cung c p cac cng cu hi u qua xac
inh
hi u ng cua cac oa n ma khac nhau.
Trnh bin dich : M t trin h bin dich
dich
ma ngu n trc ti p thanh ngn ng
assembly ho c cac l nh may . K t qua cu i cung la m t file duy nh t ho c cac file cha cac
ma my. y la m t qua trinh phc ta p va oi hoi m t vai bc . Qu trnh chuyn i t
ma chng trnh ban u thnh ma thc hin l tng i di i vi mt trnh bin dch .
Ty thuc vo s nhy cm ca ngi vit trnh bin dch , cc chng trnh sinh ra bi
m t trin h bin dich
co xu hng oi hoi it b nh hn khi thc hi n , v chung chy nhanh
hn r t nhi u . M c du kic h thc va t c thng la cac ly do hang u cho vi c s du ng
m t trinh bin dich
, trong r t nhi u trng h p y khng phai la cac ly do quan tro ng
nh t. M t vai ngn ng (ch ng ha n nh C ) c thi t k cac ph n tach bi t cua m t
chng trin h co th c bin dich
c l p hoan toan vi nhau . Cc phn ny sau thm
ch c th kt hp thnh mt chng trnh thc hin cui cng duy nht bi mt cng c
c tn l trnh lin kt . Qu trnh ny gi l separate compilation (bin dich
c l p). Bin
dch c lp c rt nhiu im li . M t chng trinh n u dich
ngay l p tc toan b se v t
qu cc gii hn ca trnh bin dch hay mi trng bin dch c th c bin d ch theo
tng ph n . Cc chng trnh c th c xy dng v kim th tng phn mt . N u mo t
ph n nao o a lam vi c ung n no co th c lu la i nh la m t kh i a hoan thanh .
T p cac ph n a lam vi c va c ki m th co th k t h p la i vi nhau ta o thanh cac th
vi n cac l p trinh vin khac co th s du ng . Cc c im ny h tr cho vic to ra cc
chng trinh ln. Cc c im g li ca trnh bin dch a ci t i n m t cach ang k qua
9

thi gian. Cc trnh bin dch u tin ch sinh ra ma my , v lp trnh vin phi chn cc
cu l nh in vao xem thc s chng trinh ang lam gi . i u nay khng phai luc nao
cung hiu qu. Cc trnh bin dch hin i c th chn cc thng tin v ma ngun vo ma
thc hi n cua chng trin h . Thng tin nay se c s du ng bi cac b g li c p ngu n
y nng lc chi ra chin h xac i u gi ang din ra tro ng m t chng trin h b ng cach
theo d u (tracing) qu trnh thc hin ca n qua ton b ma ngun . M t vai trinh bin
dch gii quyt vn tc bin dch bng cch thc hin qu trnh bin dch trong b
nh (in-memory compilation). Cc trnh bin dch theo kiu ny lu trnh bin dch trong
b nh RAM . i vi cc chng trnh nh , qu trnh ny c th xem nh l mt trnh
thng dich.

Qu trnh bin dich


l p trinh b ng C va C ++ chung t a c n phai hi u cac bc va cac cng cu trong
qu trnh bin dch . M t vai ngn ng ( c bi t la C va C ++) b t u thc hi n qua trinh
bin dich
b ng cach cha y m t b ti n x ly i vi ma ngu n . B ti n x ly la m t chng
trnh n gin thay th cc mu trong ma ngun bng cc mu khc m cc lp trnh vin
a inh
nghia (s du ng cac chi thi ti n x ly : preprocessor directives). Cc ch th tin x
l c s dng tit ki m vi c go cac oa n chng trinh thng xuyn s du ng va tng
kh nng d c cho ma ngun . Tuy nhin cac chi thi ti
n x ly nay i khi cung gy ra
nhng li r t tinh vi va kho phat hi n. Ma sinh ra bi b tin x l ny thng c ghi ln
m t file ta m. Cc trnh bin dch thng thc hin cng vic ca n theo hai pha . u tin
l phn tch ma tin x l. B bin dich
chia ma ti n x ly thanh cac n vi nho va t chc
chung thnh mt c u truc go i la cy . V d nh trong biu thc : A+B cac ph n t A ,
+, B se c lu trn nut cua cy phn tic h
. M t b ti u hoa toan cu c (global
optimizer) i khi cung c s du ng ta o ra ma chng trin h nho hn, nhanh hn.
Trong pha th hai , b sinh ma duy t qua cy phn tich va sinh ra ho c la ma
assemble ho c ma may cho cac nut cua cy . N u nh b sinh ma ta o ra ma assembly , th
sau o chng trin h dich
ma assembler se thc hi n cn g vi c ti p theo . K t qua cua hai
trng h p trn u la m t module object (m t file thng co ui la .o ho c .obj). Sau o
m t b t i u hoa nho (peep-hole) se c s dng loi b cc on cha cc cu lnh
assembly tha. Vi c s du ng t object m ta cac oa n ma may la m t thc t khng
ung l m. T nay a c dung trc ca khi l p trin h hng i t ng ra i . T object
c s du ng co y nghia nh la t goal khi noi v vi c bin dich,
trong khi o trong l p
trnh hng i tng n li c ngha l a thing with boundaries . Trnh lin kt kt hp
m t danh sach cac module object thanh m t chng trinh thc hi n co th na p vao b nh
v th c hin bi h iu hnh . Khi m t ham trong m t module object ta o ra m t tham
chi u ti m t ham ho c m t bi n trong m t module object khac , trnh lin kt se sp xp
li cc tham chiu ny ; i u nay am bao r ng t t ca c c hm v d liu external c s
dng trong qu trnh bin dch l u tn ti . Trnh lin kt cung thm vo cc module
object c bi t thc hi n cac hanh ng khi ng . Trnh lin kt c th tm kim trn
cc file c bi t go i la cac th vi n s p x p la i t t ca cac tham chi u ti chung . Mi th
vi n cha m t t p cac module object trong m t file. M t th vi n c ta o ra va bao tri bi
m t l p trin h vin co tn la librarian.
Ki m tra ki u tinh

10

Trnh bin dch thc hin kim tra kiu trong pha u tin ca qu trnh bin dch
.
Qu trnh kim tra ny thc hin kim th vic s dng cc tham s ca cc hm v ngn
ch n r t nhi u li l p trinh k hc nhau. V qu trnh kim tra kiu c thc hin trong qua
trnh bin dch ch khng phi trong qu trnh chng trnh thc hin nn n c gi l
ki m tra ki u tin h. M t vai ngn ng l p trin h hng i t ng (Java chng hn) thc hi n
ki m tra ki u ta i thi i m chng trinh cha y (dynamic type checking). N u k t h p ca
vi c ki m tra ki u tin h va ng thi se hi u qua hn nhng ki m tra ki u ng cung lam cho
chng trinh thc hi n bi a nh hng i chut . C++ s du ng ki m tra ki u tin h . Ki m tra
ki u tin h bao cho l p trin h vin v cac li v s du ng sai ki u d li u trong qua trin h bin
dch, v do ti u ha tc thc hin chng trnh . Khi ho c C++ chung ta se thy hu
h t cac quy t inh
thi t k cua ngn ng u t p trung vao cung c cac c i m : t c
nhanh, hng i t ng, cc c im m a lm cho ngn ng C tr nn ni ting . Chung
ta co th khng dun g tuy cho n ki m tra ki u tin h cua C ++ ho c cung co th thc hi n vi c
ki m tra ki u ng - ch cn vit thm ma.
Cc cng c cho vic bin dich c lp
Vi c bin dich
c l p r t c n thi t nh t la i vi cac d an ln. Trong ngn ng C
v C ++, m t l p trinh vin co th ta o ra cac oa n chng trinh nho d quan ly va c
ki m th c l p . Cng cu c ban chia m t chng trin h thanh cac ph n nho la kha
nng ta o ra cac thay th c t tn hay la cac chng trin h con . Trong C va C ++ m t
chng trin h con c go i la m t ham , v cc hm l cc on ma c th c thay th
trong cac file khac nhau , cho phep thc hi n qua trinh bin dich
c l p . Ni m t cach
khc cc hm l cc n v nguyn t ca ma ngun , v chung ta khng th t cc phn
khc nhau ca hm trong cc file khc nhau nn ni dung ca mt hm cn phi c t
hon ton trong mt file (m c du cac file co th cha nhi u hn 1 hm).
Khi chung ta go i n m t ham , chung ta thng truyn cho n mt vi tham s , o la
cc gi tr m chung ta mun hm lm vic vi khi n thc hin . Khi ham thc hi n xong
chung ta thng nh n c m t gia tri tra v , m t gia tri ma ham tra la i nh la m t k t qua .
Cung c th vit cc hm khng nhn cc tham s v khng tr v bt ky gi tr no .
to ra mt chng trnh vi nhiu file , cc hm trong m t file phai truy c p ti cac ham va
d li u trong cac file khac . Khi bin dich
m t file , trnh bin dch C hoc C ++ phi bit v
cc hm v d liu trong cc file khc c bit l tn v cch dng chung . Trnh bin dch
am bao cac ham va d li u c s du ng ung n . Qua trnh bo cho trnh bin dch tn
v nguyn mu ca cc hm v d liu bn ngoi c gi l khai bo (declaration). Khi
chung ta a khai bo mt hm hoc bi n trinh bin dich
se bi t cach thc ki m tra am
bo cc hm v d liu ny c s dng ung n.
Including cac file Header
H u h t cac th vi n u cha m t s l ng ang k cac ham va bi n . ti t ki m
cng s c va am bao s nh t quan khi khai bao ngoai cac ph n t nay , C va C ++ a s
dng mt loi file c gi l file header . Mi file header la m t file cha cac khai bao
ngoi cho 1 th vi n; theo qui c cac file nay co ph n m r ng la .h, nhng chung ta cung
c th dng cc ui file khc cho chung chng hn nh .hpp ho c .hxx. L p trin h vin ta o
ra cac file th vi n se cung c p cac header file . khai bao cac ham va cac bi n bn ngoai
th vi n ngi dung n gian chi c n thc hi n include file header o . include m t file
header chung ta s du ng chi thi ti n x ly #include. Ch th ny se bo cho b x l m file
11

header co tn tng ng va chen n i dung cua file o vao ch ma chi thi #include c s
dng. Tn file s du ng sau chi thi #include co th n m gia hai d u < v > ho c gia hai
d u .
V d: #include <header.h>
N u chung ta s du ng chi thi include theo cach trn thi b
tin x l se tm file
header theo cach c thu i vi cai t cua chung ta
, nhng thng thi se co m t vai
ng dn ma chung ta chi inh
cu th trong bi n mi trng cua trinh bin dich
ho c trn
dong lnh s dng cho vic tm cc file header . C ch thi t l p cac ng dn nay phu
thu c vao trin h bin dich
va mi trng ma chung ta lam vi c.
V d: #include header.h
Ch th tin x l nh trn thng c ngha l bo cho b ti n x ly tim file tng
ng trong th mc hin ti trc nu khng thy th se tm ging nh trong trng hp tn
file include c t gia hai d u < v >. Ni chung th i vi cc file include chun hoc
c s du ng nhi u chung ta nn c no trong th mu c m c inh
la include di th mu c
ci t trnh bin dch v dng ch th theo kiu <>, con i vi cc file c th vi ng
dng c th th dng kiu tn file t gia hai du . Trong qua trinh phat tri n cua C ++
cc nh cung cp cc trnh bin dch c cc qui c t tn khc nhau v cc h iu hnh
li c cc hn ch tn khc nhau c bit l di ca tn file . Cc vn ny gy ra cc
v n v tin h kha chuy n cua chng trin h . kh c phu c v n nay ngi ta a s du ng
m t inh
da ng chu n cho phep cac tn file header co th dai hn 8 k t v b i phn tn
m r ng. phn bi t m t chng trinh C va C ++ i khi ngi ta con dung cach thm
m t ky t c vao trc tn cua cac file header , chi ti t nay cung c ch p nh n i vi C
v C++.
Qu trnh lin kt
Trnh lin kt tp hp cc module object (thng la cac file c phn m rng l .o
ho c .obj), c sinh ra bi trinh bin dich
, thnh mt chng trnh c th thc hin c
v h iu hnh c th np vo b nh v chy . y la pha cu i cung trong qua trinh bin
dch. Cc c i m cua cac trin h lin k t thay i phu thu c vao cac h th ng khac nhau .
Ni chung chung ta ch cn ch ro cho trnh lin kt bit tn ca cc module object v cc
th vi n ma chung ta mu n lin k t , v tn ca chng tr nh kha cha y cu i cung . M t vai
h th ng oi hoi chung ta c n phai t go i ti cac trinh lin k t . Tuy nhin h u h t cac trinh
bin dich
hoan chinh u thc hi n h chung ta cng vi c nay .
S du ng cac th vin
Gi y ch ung ta a bit cc thut ng c bn , chung ta c th hiu cch thc s
dng mt th vin. s du ng m t th vi n c n phai :
+ Include file header cua th vi n
+ S du ng cac ham va cac bi n trong th vi n
+ Lin k t th vin vo chng trnh kh chy cui cng
Cc bc ny cung ung vi cc module object khng c trong cc th vin
Including m t file header va lin k t cac module object la cac bc c ban thc hi n
vi c bin dich
c l p trong C va C++.

12

Trnh lin kt lm th no tm mt file th vin


Khi chung ta ta o ra m t tham chi u ngoai ti m t ham s ho c m t bi n s trong C
ho c C++, trnh lin kt , khi b t g p tham chi u nay , c th thc hin m t trong hai vi c
sau: n u no cha th y ph n inh
nghia cua ham hay bi n nay , n se thm nh danh vo
danh sach cac tham chi u cha c inh
nghia cua no . N u nh trinh lin k t a b t g p
inh
nghia cua tham chi u o , tham chi u se c s p x p la i . N u nh trin h lin k t
khng tim
nghia cua tham chi u trong danh sach cac module object no se ti n
th y inh
hnh tm kim trong cc th vin . Cc th vin c mt vi loi ch s nn trnh li n k t
khng c n thi t phai tim ki m h t trong cac module objetc cua th vi n n ch cn xem
xet cc phn ch mc . Khi trinh lin k t tim th y m t inh
nghia trong m t th vi n , ton
b module object ch khng chi ph n i nh nghia cua ham , se c lin kt vo chng
trnh thc hin. Chu rng ton b th vin se khng c lin kt , ch c phn nh ngha
m chng trnh tham chiu ti . Nh v y n u chung ta mu n t i u v kic h thc cu
a
chng trinh chung ta co th cho mi ham vao m t file khi xy dng cac th vi n ring cua
mnh. i u nay oi hoi cng sc edit nhi u hn nhng cung co th co ich . V trnh lin kt
tm kim cc file theo th t chung ta c th che i s tn ti ca mt hm th vin bng
cch dng hm ca chung ta vi phn nh ngha v prototype y ht nh hm th vin . Tuy
nhin i u nay cung co th gy ra cac li ma chung ta khng th ki m soat c .
Khi m t chng trin h kha cha y c vi t b ng C ho c C ++ c ta o ra , m t s cac
thnh phn nht nh se c lin kt vi n mt cch b mt . M t trong cac thanh ph n
ny chnh l module khi ng (startup), module nay ch a cac thu tu c khi ta o c n phai
c thc hi n b t c khi nao m t chng trinh C hay C ++ b t u cha y. Cc th tc ny
thi t l p stack va cac bi n khi ta o nh t inh
trong chng trin h.
Trnh bin dch lun thc hin vi c tm kim trong cc th vin chun thc hin
lin k t cac ham chu n ma chung ta dung trong chng trinh nn dung cac ham trong
cc th vin chun chung ta n gin ch cn include file header ca th vin . Con i
vi cac th vi n ring do chung ta ta o ra chung ta c n chi ro tn th vi n cho trin h lin k t
(ch ng ha n th vi n graphics khng phai la m t th vi n chu n ).
1.2 Chng trin
h u tin.
Cch tt nht hc lp trnh l xem cc chng trnh ca ngi khc vit v hc tp
cc k thut lp trnh ca h . Sau y la chng trin h HelloWorld c vi t b ng C ++,
m t chng trin h ma h u h t cac sach l p trin h u l y lam vi du m u .
// Chng trnh HelloWorld
// File hello.cpp
// In ra man hin h xu Hello, World!
#include <iostream.h> // Khai bao lu ng cout s du ng
int main() {
cout << "Hello, World! I am "
13

You might also like