Vous êtes sur la page 1sur 20

Khoa Cng ngh Thng tin

Trng Cao ng Cng nghip Hu

GIO TRNH
LP TRNH HNG I TNG C++
(Lu hnh ni b)

Hu, thng 06/2011

PH LC
GII THIU ...................................................................................................... 7
MI TRNG PHT TRIN TCH HP IDE........................................... 10
CHNG 1. NGN NG LP TRNH C++ .............................................. 22
1.1. Cu trc ca mt chng trnh C++ ........................................................ 22
1.2. Bin v cc kiu d liu ........................................................................... 25
1.2.1.T kha ................................................................................................ 25
1.2.2. Kiu d liu nguyn thy.................................................................... 26
1.2.3. Khai bo bin ...................................................................................... 26
1.2.4. Phm vi tc dng ca bin .................................................................. 27
1.2.5. Khi to gi tr cho bin ..................................................................... 29
1.2.6. Khi to gi tr cho bin tnh static..................................................... 29
1.2.7. Gii thiu v xu k t ........................................................................ 30
1.3. Hng ......................................................................................................... 31
1.3.1. Hng s nguyn................................................................................... 31
1.3.2. Hng s thc c du chm ng ......................................................... 31
1.3.3. Hng k t v hng xu k t............................................................... 32
1.3.4. Hng logic ........................................................................................... 33
1.3.5. nh ngha mt hng #define.............................................................. 33
1.3.6. Khai bo hng const ............................................................................ 34
1.4. Ton t ..................................................................................................... 34
1.4.1. Ton t gn ......................................................................................... 34
1.4.2. Ton t thc hin php ton s hc .................................................... 35
1.4.3. Ton t gn hp nht .......................................................................... 36
1.4.4. Ton t tng v gim .......................................................................... 36
1.4.5. Ton t so snh ................................................................................... 37
1.4.7. Ton t iu kin ................................................................................ 39
1.4.8. Ton t phn tch................................................................................ 40
1.4.9. Ton t dch bit ................................................................................... 41
Trang |2

C++

1.4.6. Ton t logic ....................................................................................... 38

1.4.10. Ton t chuyn i kiu d liu ....................................................... 43


1.4.11. Cc ton t khc................................................................................ 43
1.4.12. Th t u tin ca cc ton t .......................................................... 43
1.5. Xut nhp c bn................................................................................... 45
1.5.1. Xut d liu chun cout ...................................................................... 45
1.5.2. Nhp d liu chun cin ....................................................................... 46
1.5.3. Nhp d liu nh lp stringstream ..................................................... 48
1.6. Cc cu trc lnh iu khin .................................................................... 49
1.6.1. Cu trc lnh c iu kin: if v else .................................................. 50
1.6.2. Cu trc lp ......................................................................................... 52
1.6.3. Cu trc la chn: switch ................................................................... 57
1.7. Hm .......................................................................................................... 61
1.7.1. Khai bo v s dng hm.................................................................... 62
1.7.2. Phm vi tc dng ca bin .................................................................. 65
1.7.3. Hm khng tr v gi tr - Hm void. ................................................. 66
1.7.4. Tham bin v tham tr ......................................................................... 67
1.7.5. Gi tr mc nh ca tham s hnh thc .............................................. 70
1.7.6. Chng cht hm .................................................................................. 71
1.7.6. Hm ni tuyn ..................................................................................... 72
1.7.7. Hm quy ......................................................................................... 72
1.8. Cc kiu d liu c cu trc ..................................................................... 74
1.8.1. Mng ................................................................................................... 74
1.8.2. Xu k t.............................................................................................. 78
1.9. Con tr ...................................................................................................... 78
1.9.1. Ton t tham chiu & ......................................................................... 79
1.9.2. Ton t tham chiu ngc * ............................................................... 80
1.9.3. Khai bo bin con tr .......................................................................... 81
1.9.5. Cc php ton s hc trn con tr ....................................................... 85
1.9.6. Con tr tr vo con tr ........................................................................ 87
1.9.7. Con tr void ........................................................................................ 88
Trang |3

C++

1.9.4. Con tr, mng v xu k t ................................................................. 83

1.9.8. Con tr null ......................................................................................... 89


1.9.9. Con tr hm......................................................................................... 89
1.10. B nh ng ........................................................................................... 91
1.10.1. Ton t new v new[] ....................................................................... 91
1.10.2. Ton t delete v delete[] ................................................................. 92
1.11. Kiu d liu struct v Con tr struct ...................................................... 93
1.11.1. Struct ................................................................................................. 93
1.11.2. Con tr struct..................................................................................... 97
1.11.3. Struct lng nhau ................................................................................ 98
1.11.4. Kch thc b nh ca struct ............................................................ 98
1.12. Cc kiu d liu khc ............................................................................. 99
1.12.1. Kiu d liu t nh ngha ................................................................ 99
1.12.2. Kiu d liu union thng .............................................................. 100
1.12.3. Kiu d liu union n danh ............................................................. 100
1.12.4. Kiu d liu enum........................................................................... 101
CHNG 2. LP TRNH HNG I TNG .................................... 102
2.1. Lch s hnh thnh .................................................................................. 102
2.2. Lp v i tng .................................................................................... 107
2.3. Hm to v hm hy .............................................................................. 110
2.4. Chng cht hm to ................................................................................ 112
2.5. Hm to sao chp ................................................................................... 114
2.6. Tnh ng gi Encapsulation .............................................................. 119
2.7. Con tr i tng ................................................................................... 120
2.8. Lp c khai bo nh t kha struct v union .................................... 121
2.9. Con tr this ............................................................................................. 121
2.10. Thnh vin tnh T kha static.......................................................... 123
2.11. Hm bn v lp bn ............................................................................. 124
2.13. Tnh k tha - Inheritance .................................................................... 132
2.14. Cc mc truy cp.................................................................................. 135
2.15. Tnh a k tha Multiple Inheritance ................................................ 137
Trang |4

C++

2.12. Chng cht ton t ............................................................................... 126

2.16. Tnh a hnh Polymorphism .............................................................. 138


2.17. Tnh tru tng ha - Abstraction ....................................................... 149
2.18. Hm mu Template Function ............................................................ 149
2.19. Lp mu Template class ................................................................... 150
CHNG 3. NAMESPACE .......................................................................... 154
3.1. T kha namespace ................................................................................ 154
3.2. T kha using ......................................................................................... 154
3.3. Phm vi ca namespace ......................................................................... 156
3.4. Ti nh danh cho namespace ................................................................ 156
3.5. Namespace std ........................................................................................ 157
CHNG 4. NGOI L .............................................................................. 158
4.1. Cu lnh trycatch................................................................................ 158
4.2. Cu lnh throw ....................................................................................... 158
4.3. Th vin chun exception ...................................................................... 158
CHNG 5. LM VIC VI FILE ............................................................ 161
5.1. M file .................................................................................................... 161
5.2. ng file ................................................................................................. 163
5.3. File vn bn ............................................................................................ 163
5.4. Kim tra trng thi ca cc c hiu ........................................................ 164
5.5. Con tr get v put ................................................................................... 164
5.6. File nh phn ........................................................................................... 166
5.7. B m v ng b ha ......................................................................... 167
CHNG 6. CC LP TH VIN ........................................................... 168
6.1. Lp s phc complex ............................................................................. 168
6.2. Lp ngn xp stack ................................................................................ 169
6.3. Lp hng i queue ................................................................................ 170
6.3. Lp vector .............................................................................................. 171
6.5. Lp list ................................................................................................... 176
6.6. Lp map ................................................................................................. 176
6.7. Lp set .................................................................................................... 177
Trang |5

C++

6.4. Lp string ............................................................................................... 174

6.8. Cc lp th vin nhp xut .................................................................... 177


HNG DN THC HNH ........................................................................ 184
BI THC HNH S 1 .............................................................................. 184
BI THC HNH S 2 .............................................................................. 184
BI THC HNH S 3 .............................................................................. 185
BI THC HNH S 4 .............................................................................. 186
BI THC HNH S 5 .............................................................................. 186
BI THC HNH S 6 .............................................................................. 187
BI TP NNG CAO .................................................................................... 188
BI TP LN ................................................................................................. 194
DANH SCH HNH ....................................................................................... 196
TRA CU T KHA .................................................................................... 197

C++

TI LIU THAM KHO .............................................................................. 198

Trang |6

GII THIU
Cu trc ca gio trnh
Gio trnh c chia ra lm 6 chng v mi chng c chia lm cc
mc khc nhau. Cc chng c sp xp theo trnh t t lp trnh hng
th tc trn C++ n lp trnh hng i tng v cc lp th vin c bn.
c gi c th truy cp vo mc bt k t phn ph lc nm u sch. Nhiu
mc bao gm cc v d m t cch s dng. Ti khuyn cc bn nn c
cc v d ny v c th hiu mi on m chng trnh trc khi c chng
tip theo.
Mt cch thc tt tng lng kin thc nhn c l hy chnh sa,
b sung m lnh mi da trn v d mu, theo hng t duy ca ca bn
thn, t c th hiu mt cch y v ni dung m ta tip thu c.
Sau khi c xong gio trnh, ti cn cung cp mt s bi tp thc hnh
ngh c gi nn th nghim. Hy gii nhng bi tp ny, chng s rt
hu ch v gip cc bn cng c li kin thc mn hc cng nh hiu su sc
hn phn l thuyt.
Mt iu na m c gi cn lu : hy c trang cui cng ca cun
sch, nm c mt s thut ng anh-vit tng ng c s dng trong
gio trnh ny. Ti cng c gng s dng tn gi ph hp nht vi i a s
cc gio trnh hin hnh. Tuy nhin, c gi cng nn nm cc thut ng
ting anh tng ng, c th tham kho thm cc ti liu chuyn mn ting
anh.
Khi bin son gio trnh ny, ti khng th trnh khi sai st. Rt mong
s ng gp kin qu bu ca cc bn c gi cng nh cc bn ng
nghip. Mi s ng gp xin lin h theo a ch email:
dnhthanh@hueic.edu.vn hoc myhoangthanh@yahoo.com . Hi vng vi cc
kin ng gp ca cc bn, gio trnh ny s ngy cng hon thin hn.

Chun ANSI-C++ c mt t chc tiu chun quc t thng nht a ra.


N c chnh thc ra mt vo thng 11 nm 1997 v duyt li vo nm
2003. Tuy nhin, ngn ng C++ tn ti trc mt thi gian kh di
(vo nm 1980). Trc , c rt nhiu trnh dch khng h tr cc tnh nng
mi bao gm c chun ANSI-C++. Gio trnh ny c xy dng trn cc
chng trnh dch hin i h tr y chun ANSI-C++. Ti m bo rng
cc v d s hot ng tt nu c gi s dng mt trnh dch h tr ANSIC++. C nhiu s chn la, c th l min ph hoc cc phn mm thng
mi. Trong gio trnh ny, ti gii thiu n cc cc bn hai cng c bin
dch C++ l GCC MinGW min ph v Visual C++ - thng mi.
Trang |7

C++

Mt vi ch v s tng thch ca C v C++

Trnh bin dch


Cc v d trong cun gio trnh ny c xy dng ch yu trn ch
console (mn hnh DOS). iu c ngha l n s dng ch vn bn
hin th cc kt qu. Mi trnh dch C++ u h tr ch dch console. Vi
mt mi trng pht trin tch hp IDE cho C++ min ph, chng ta c th s
dng chng trnh Codeblocks hoc Eclipse. Chng l cc mi trng pht
trin tch hp h tr son tho v bin dch C++. Chng h tr mi trng
GCC bin dch c C v C++. Vi CodeBlocks, chng ta c th ti phn
mm ti a ch bn di1. i vi Eclipse, n l mt trnh son tho v bin
dch ngn ng lp trnh chuyn nghip nhng hon ton min ph (v ta c
th cu hnh kt hp vi cc cng c bin dch khc nhau to ra mi
trng pht trin tch hp cho cc ngn ng lp trnh khc nhau). Chng ta
c th dng n son tho v bin dch Java, PHP, JSP, Python v hin
nhin l c C/C++. y l mt d n m ngun m, tiu tn hng triu la
ca IBM. ti v bn mi nht cho n thi im ny (nm 2010) l
Eclipse Helios, ta c th truy cp n a ch bn di2. i vi Eclipse,
chng ta nn s dng kt hp vi trnh bin dch C++ l MinGW, n cng l
mt d n m. Chng ta c th ti v ti a ch bn di3. Vi Eclipse, th
cng vic cu hnh ban u tng i phc tp. Nhng n l mt trnh son
tho tuyt vi. Ta c th s dng n son tho nhiu ngn ng lp trnh
bng cch ci t thm plugin h tr. Nhiu nh pht trin s dng
Eclipse lm nn tng cho vic pht trin cc ng dng ca mnh:
Embarcadero s dng n pht trin JBuider, Adobe s dng n pht
trin Flash Buider v rt nhiu cc hng phn mm ni ting khc.
Nu l mt lp trnh vin Java, Eclipse l mt s la chn khng th b
qua. Nu pht trin Flash theo d n m ngun m t Adobe, Eclipse cng l
s la chn hon ho. Nu pht trin C/C++, vi cc trnh son tho th
Eclipse cng l s la chn khng ti. Vic s dng thnh tho Eclipse s l
mt li th cho chng ta khi tin hnh nghin cu Java, lp trnh Web, Flex,
Python sau ny.

http://www.codeblocks.org/downloads
http://ftp.jaist.ac.jp/pub/eclipse/technology/epp/downloads/release/helios/R/eclipse-cpp-helioswin32.zip
3 http://nchc.dl.sourceforge.net/project/mingw/Automated%20MinGW%20Installer/mingw-getinst/mingw-get-inst-20100831/mingw-get-inst-20100831.exe
1
2

Trang |8

C++

Bn cnh , chng ti cng gii thiu mi trng pht trin tch hp IDE
Microsoft Visual Studio. y l trnh bin dch thng mi v l trnh bin
dch chuyn nghip v ni ting nht trn h iu hnh Windows. Ta c th
s dng pht trin cc ng dng trn nn NET hoc cc ng dng Win32.
Nu mun pht trin cc ng dng theo hng ca Microsoft, ta nn s dng
Visual Studio. Phin bn mi nht n thi im ny l VS 2010. Nhng cn
lu rng, khi nghin cu Visual C++, hy chn la phin bn dnh cho
Win32 m khng phi l ng dng CLI (common language infrastructure)

C++

bi n c pht trin trn nn NET. V Visual C++ for NET c mt s khc


bit so vi Visual C++ for Win32.

Trang |9

MI TRNG PHT TRIN TCH HP IDE


a) CodeBlocks
Trc tin, chng ta s tm hiu cch to d n, bin dch mt tp tin C++ trn
CodeBlocks. c gi cng cn lu rng, CodeBlocks t chc cng vic theo
cc d n. Chng ta c th bin dch tng tp tin cpp mt cch n l. Tuy
nhin, lm vic theo d n s gip ch cho chng ta rt nhiu khi lm vic vi
nhng tc v ln.
u tin chng ta khi ng codeblocks, sau vo File > New > Project.
Trong hp thoi hin ra, chng ta chn console application (Hnh 1).
V nhp Go, sau nhp Next. Trong hp thoi tip theo, ta chn C++ v nhp
Next.

Hnh 1 To mi d n trong CodeBlocks


Hp thoi yu cu in thng tin v d n s xut hin. Hy in tn d n, v
tr lu tr d n. Sau nhp Next. Cui cng nhp Finish.
Trong ca s qun l d n, ta nhp i chut vo tp main.cpp. Ni dung son
tho s c nhp vo trong tp tin ny.
Nu ta mun b sung cc tp tin khc hoc cc lp i tng, ta c th b sung
chng t menu File > New.
Bin dch chng trnh:
+ Nhp vo Build > Build and Run.
+ Hoc nhp phm F9.

T ng nh dng m. Khi vit mt chng trnh C++ hay bt k mt chng


trnh trn mt ngn ng lp trnh no khc, ta cn
tun th quy phm nh dng m ngun. C nhiu
chun mc cho cc nh dng m ngun: chun
Hungary, chun lc ... D rng, chng khng nh
hng n vic bin dch chng trnh, nhng
chng gip ngi c c th d hiu chng trnh
ca chng ta hn. Nu ta khng nm vng cc quy
phm ny th c th s dng chc nng nh dng
m ngun t ng ca CodeBlocks. Hy kch chut
phi vo vng son tho, sau chn Format this
file (Astyle).
T ng khi to phn thn cc phng thc ca lp. h tr cho vic
son tho, CodeBlocks cng h tr chc nng khi to nhanh m ngun.
khi to nhanh phn khai bo thn phng thc ca lp t khai bo prototype
ca n, chng ta t tr chut vo sau khai bo lp (tc v tr s chn khai bo
thn phng thc), sau , kch chut phi, chn Insert > All class methods
without implementation.
Trong hp thoi hin ra, hy chn
nhng phng thc mun khi to
phn thn tng ng, sau , nhp Ok.

Hnh 2 Khi to thn phng thc

b) Eclipse Helios
Sau khi ti xong Eclipe Helios v my, hy tin hnh gii nn tp tin. Chng
trnh Eclipse khng yu cu chng ta phi ci t, nhng n c th lm vic nu
trn my tnh ci mt my o Java. ti v my o Java, chng ta c th
truy cp vo trang ch ca Sun (nay l Oracle) ti a ch sau y4.
xy dng mt chng trnh C/C++ trn Eclipse, chng ta cn:

C++

- Eclipse Helios for C/C++ (nu phin bn ti v l dnh cho Java, ta cn phi
ci t thm plugin h tr); hoc c th s dng mt n bn c hn ca Eclipse
nh Galileo, Europa.
- Cng c bin dch GCC MingW.
4

http://javadl.sun.com/webapps/download/AutoDL?BundleId=41723

T r a n g | 11

- My o Java JVM.
Cc bc cu hnh trn Eclipse Helios
Bc 1. Ci t my o Java.
Bc 2. Ci MinGW.
Bc 3. Gii nn Eclipse Helios, sau khi ng n (nhp vo tp tin
eclipse.exe). Thng thng, Eclipse s t ng cu hnh MinGW gip ta. Nu
khng, hy thc hin bc 4.
Bc 4. Vo menu Project > Properties. Trong hp thoi xut hin, hy chn
C/C++ Build > Settings.

Hnh 3 Cu hnh MinGW trong Eclipse Helios


Trong th Tool Settings, ta chn GCC Assembler > General. Sau , nhp vo
biu tng c du cng mu xanh. Hp thoi sau s hin ra:

Hnh 4 Chn ng dn n th mc bin ca MinGW


Ta tin hnh hy nhp tn ng dn n th mc bin ca MinGW (hoc nhp
vo nt File system duyt n th mc ny). Mc nh khi ci t, th mc
ny s l C:\MinGW\bin. Sau nhp Ok. Vy l cng vic cu hnh hon
tt.
Xy dng d n u tin trn Eclipse
Cng ging nh CodeBlocks, Eclipse cng t chc chng trnh theo d n.
to mi mt d n trong Eclipse, chng ta c ba cch:
- Vo File > New > C++ Project.

- Kch chut phi vo ca s Project Explorer > chn New > C++ Project.
Tip n, hp thoi sau y s xut hin.
T r a n g | 12

C++

- Vo biu tng to mi d n trn thanh cng c, chn C++ Project.

Trong hp thoi ny, nu chn mt d


n kh thi (executable), hy chn
executable. Ta cng c th chn th
vin dll (static library) Tng ng
vi d n kh thi, chng ta c th chn
Empty Project hoc Hello World C++
Project. i vi Empty Project, n s
to mt d n trng. Ngc li vi
Hello World C++ Project, ta s nhn
c mt file cpp cha ni dung m
chng ta s tho lun trong chng tip
theo.
Sau , hy nhp vo tn d n v nhp
Next (nu cha cu hnh MinGW),
Hnh 5 - To mi d n

hoc nhp Finish (nu hon tt vic


cu hnh).

To mi mt file ni dung trong Eclipse. Mt chng trnh trong C++ thng


chia lm hai loi tp: .cpp v .h. Tp .cpp thng cha ni dung chng trnh,
tp .h thng cha cc khai bo.
T chc tp tin. Hy to mt th mc chung cha ton b ni dung sau ny,
ti tm gi th mc ny l th mc src. Trong th mc src, hy to hai th mc,
mt th mc cpps v mt th mc headers. Th mc cpps s cha ton b tp
.cpp, th mc headers s cha ton b tp .h. Tp Main.cpp cha hm main s
c t trong th mc src. Ngha l ta s c cu trc tng t nh sau:

cpps
headers
Main.cpp

Bin dch mt d n
bin dch mt d n, hy nhp vo biu

Hnh 6 - Cu trc th mc ca mt d n

tng sau y trn thay cng


c ca Eclipse.

T r a n g | 13

C++

src

Hin nhin ta hon ton khng nht thit phi


thc hin theo nh cu trc th mc ny. Tuy
nhin iu ny s lm cho d n ca ta tr
nn sng sa hn rt nhiu. Chng ta c th
b sung thm cc th mc ph khc, nhng
nn tun th cu trc cy ny (v d khi cn
phn bit cc tp tin cpp thnh nhiu loi
khc nhau, th trong th mc cpps, hy to
thm cc th mc con khc)

Hnh 7 - Bin dch mt d n


Chn Run As > Local C/C++ Application.
Mt s th thut gip son tho nhanh
Eclipse cha ng mt tp cc tin ch gip chng ta son tho nhanh hn, t
pht sinh li hn. Sau y, ti xin gii thiu mt vi tnh nng gip cc chng ta
son tho nhanh hn.
To mi mt lp
Vo New > Class. Hp thoi sau y s hin ra

Trong hp thoi ny, cn lu : source folder th mc cha tp tin s to mi


(thng s c phn tch thnh tp .h v .cpp), namespace phm vi tc dng
ca n trong namespace c ch nh, class name tn ca lp s to mi, base
class tn ca lp cha m n s tha k (bm vo nt add chn cc lp tn
ti), constructor v destructor cho php khi to hm to v hm hy. Chng
ta s tm hiu nhng khi nim ny khi lm quen vi lp trnh hng i tng.
To nhanh cc phng thc Getter v Setter
T r a n g | 14

C++

Hnh 8 - Hp thoi to mi class

Nu khi khai bo mt lp, cng vi cc thuc tnh ca n, thay v s dng hm


to thit lp gi tr ban u, ta c th dng hm setter; hoc tip nhn gi
tr t cc thuc tnh, ta c th dng cc hm getter. Ti s gii thiu chi tit hn
v cc phng thc ny trong phn lp trnh hng i tng. Trong phn ny,
ti s hng dn cch to chng bng thao tc nhp chut. Vo menu Source,
chn Generate Getters and Setters. Trong hp thoi hin ra, hy chn cc thuc
tnh cn to phng thc getter v setter, sau nhp Ok.
Mt s phm tt khc
Phm tt

Cng dng
Ctrl+Space
Bt ch gi nhc lnh.
main Ctrl+Space
Khi to nhanh hm main.
Ctrl+Shift+F
nh dng nhanh m ngun.
Ctrl+/
Comment vng m c bi en, nu vng
bi en ch comment, th du
comment s b hy b.
Tab
Dch ton b ni dung b bi en sang phi
mt tab.
Shift+Tab
Dch ton b ni dung b bi en sang tri mt
tab.
Ctrl+1
Chnh sa nhanh ton b cc t ging vi t
ang c bi en. Sau khi chnh sa xong,
nhp Enter kt thc.
Ctrl+Shift+/
To mt khi comment cho vng vn bn
b bi en.
Ctrl+Shift+\
Hy b vng vn bn b comment bi khi
comment.
Trn y, ti gii thiu s qua hai chng trnh son tho min ph lp
trnh C/C++: CodeBlocks v Eclipse. Vi CodeBlocks, ch cn ti v ci t.
Mi trng h tr bin dch GCC c tch hp sn. Vi Eclipse, ta phi
thc hin cu hnh kt hp vi trnh bin dch GCC. Nu l ngi c nhiu
tri nghim v my tnh, th nn chn Eclipse bi n l chng trnh son tho
rt chuyn nghip. Nu l ngi mi tip xc my tnh, hy chn CodeBlock v
ci t n gin.

Visual Studio 2010 l mt mi trng bin dch tch hp ca Microsoft. N l


trnh bin dch tt nht, hin i nht trn h iu hnh Windows. Chng ta c
th s dng n bin dch C++, C#, Visual Basic, J#... Ta s tm hiu Visual
Studio theo hng tip cn vi C++. Mt iu cn lu , vi phin bn 2010
ny, Visual Studio c hai phin bn dnh cho C++: C++ for Net v C++ for
Win32. Chng ta ch tm hiu v tnh nng C++ for Win32. Trong ni dung ca
gio trnh ny, ta s xy dng cc ng dng Console trn nn Win32 m khng
T r a n g | 15

C++

c) Visual Studio 2010 dnh cho Visual C++

tho lun thm v Visual C++ for Net bi v n thuc mt phm tr tng i
khc so vi Visual C++ for Win32.
Khi ng Visual Studio 2010.
khi ng VS 2010, ta c th thc hin mt trong hai cch sau:
Nhp i chut vo biu tng VS 2010 trn nn Desktop.
Vo Start > All Programs > Microsoft Visual Studio 2010, chn biu
tng VS 2010.

Hnh 9 - Giao din tng th ca Visual Studio 2010


To mi d n trong VS 2010.
Cng nh Eclipse, VS cng qun l theo cc workspace v cc d n. Trong
VS, workspace c gi l Solution. Trong mi workspace c th cha nhiu d
n. Nu cha to mt d n no, th khi to mi mt d n, workspace s t
ng c to. to mi mt d n, ta vo File > New Project (hoc t hp
phm tt Ctrl+Shift+N).

C++

Trong hp thoi xut hin, chng ta chn Win32 Console Application.

T r a n g | 16

Hnh 10 - To d n Win32 Console


Mc name: hy nhp tn d n
m cn to.
Mc Location: nhp vo nt
Browse chn v tr lu tr.
Mc nh, Visual Studio s lu
tr d n th mc
Documents.
Mc Solution name: to mt
th mc con trong th mc d
n, hay to trc tip trong th
mc d n.
Hp thoi Hnh 12 s hin ra.
Nhm Application Type

Hnh 11 - Win32 Application Wizard

+ Windows application: to ng
dng winform.

C++

+ Console application: to ng dng chy trn DOS.


+ Dll: to th vin dll.
T r a n g | 17

+ Static library: to th vin tnh.


Nhm Add common header file
+ Alt: to header t lp th vin Alt.
+ MFC: to header t lp th vin MFC.
Nhm Additional options
+ Empty project: to d n rng khng c tp tin.
+ Export symbols: xut bn cc biu tng.
+ Precompiled header: to tp tin tiu tin bin dch.
Hy chn Console Application v chn Empty Project. Sau , nhp Finish.
To cc tp tin trong d n.
Trong ca s Solution Explorer, hy kch chut phi v chn Add:
- Nu tp tin tn ti, hy chn Add Existing Items. Sau , chng ta duyt
n v tr tn ti tp tin.

- Nu tp tin cha tn ti, hy chn Add New Items. Trong ca s xut hin, ty
thuc vo tp tin m chng ta cn, hy chn loi tng ng. Thng thng,
trong d n ca C++, chng ta s dng hai tp tin l tiu .h v thn chng
trnh .cpp. Sau , hy nhp tn ca tp tin v nhp Ok. Tp tin tiu .h thng
cha cc khai bo prototype ca hm hoc lp. Ngoi ra, n c th cha cc
hm macro, cc khai bo hng v bin ton cc c s dng trong ton b
chng trnh. Tp tin .cpp thng cha phn thn ca cc hm hoc lp. Khi
T r a n g | 18

C++

Hnh 12 - B sung thm mt tp tin

lm vic vi cc d n trong C++, chng ta nn tch chng trnh thnh nhiu


phn v nn s dng cc tp tiu lm cho chng trnh gn gng v d
hiu hn.
Sau khi chn c tp tin cn to, hy nhp tn ca tp tin, sau nhp nt
Add. Tp tin mi s c b sung vo d n.
- Add Class: b sung cc lp i tng cho d n. y, chng ta chn C++
class.

Hnh 13 - B sung thm lp i tng

C++

Nhp Add. Ca s sau y s xut hin

Hnh 14 - To lp bng Class Wizard


T r a n g | 19

- Class name: tn ca lp.


- .h file: tn ca tiu lp cng l tn ca tp tin tiu .
- .cpp file: tn ca tp tin .cpp tng ng vi lp.
- Base class: nu lp mi to ra tha k t mt lp khc, hy nhp tn ca lp c
s vo y.
- Access: mc tha k ca lp ang to t lp c s.
- Virtual destructor: to mt phng thc hy o.
- Inline: to mt phng thc inline. Tuy chng ta c th s dng t kha ny,
nhng c ch lm vic ca Visual C++ l t ng b sung inline khi bin dch
nu phng thc c cho l ph hp s dng inline. iu c ngha l
chng ta khng cn dng n t kha ny.
Bin dch d n.
- bin dch v thc thi mt d n, chng ta nhp vo Debug > Start
Debugging (hoc Start without Debugging).
- bin dch ton b d n m khng thc thi d n, chng ta vo Build, chn
Build Solution.
Mt s phm tt trong Visual Studio 2010.
- To vng comment (ch thch): bi en vng m cn to ch thch, nhn t
hp Ctrl+K, Ctrl+C.
- Hy b vng comment: bi en vng m comment, nhn t hp Ctrl+K,
Ctrl+U.
- nh dng m ngun: bi en vng m cn nh dng, nhn t hp Ctrl+K,
Ctrl+F.
- nh dng nhanh m ngun: bi en vng m lnh, nhn t hp Ctrl+K,
Ctrl+F.
- T ng hon tt m v gi nhc lnh: t hp Ctrl+Space.
Visual Studio 2010 khng h tr cc tnh nng mnh m cho vic khi to
nhanh m ngun. Nhng ta c th s dng tin ch Visual Assist. Phin bn cho
n thi im ny (nm 2010) l 10.6.

quan st biu lp trong VS 2010, ta nhp chut phi vo tn d n (trong


ca s Solution Explorer), chn Show class diagram. Sau , chng ta ko th
cc lp i tng vo vng biu .
T r a n g | 20

C++

Xem biu lp.

Vous aimerez peut-être aussi