Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 231 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
231
Dung lượng
4,89 MB
Nội dung
Đ NG NG C (OÀNG T(ÀN(
C++
L P TRÌN( (
NG
Đ )T
NG
Tài li u h c t p
Trang | 1
PH L C
GI I THI U
MÔ) TR
.............................................................................................................7
NG PHÁT TRI N TÍCH H P IDE ................................................... 10
C(
NG
C
B N V C++ ............................................................................ 23
CH
NG
BI N VÀ CÁC KI U D
LI U..................................................... 26
T khóa ................................................................................................................................ 26
Ki u d li u nguyên th y.............................................................................................. 27
Khai báo bi n ..................................................................................................................... 28
Ph m vi tác d ng c a bi n............................................................................................ 29
Kh i t o giá tr cho bi n ................................................................................................ 30
Kh i t o giá tr cho bi n tĩnh static .......................................................................... 31
Gi i thi u v xâu kí t .................................................................................................... 32
C(
NG
H NG .............................................................................................. 34
H ng s nguyên................................................................................................................. 34
H ng s th c có d u ch m đ ng ................................................................................ 34
H ng kí t và h ng xâu kí t ........................................................................................ 35
H ng logic ............................................................................................................................ 36
Đ nh nghĩa m t h ng #define ..................................................................................... 36
Khai báo h ng const ........................................................................................................ 37
C(
NG
TOÁN T
....................................................................................... 38
Toán t gán ......................................................................................................................... 38
Toán t th c hi n phép toán s h c ........................................................................ 39
Toán t gán h p nh t ..................................................................................................... 40
Toán t tăng v{ gi m ...................................................................................................... 40
Toán t logic ...................................................................................................................... 42
Toán t đi u ki n ............................................................................................................. 43
Toán t phân tách ............................................................................................................ 45
Trang |2
C++
Toán t so sánh................................................................................................................. 41
Toán t d ch bit................................................................................................................. 45
Toán t chuy n đ i ki u d li u ................................................................................ 48
Các toán t khác ............................................................................................................... 49
Th t
C(
NG
u tiên c a các toán t ................................................................................... 49
XU T NH P C
B N .................................................................. 52
Xu t d li u chu n cout ................................................................................................. 52
Nh p d li u chu n cin .................................................................................................. 53
Nh p d li u nh l p stringstream .......................................................................... 55
C(
NG
CÁC C U TRÚC L N( Đ) U KHI N ............................................ 58
C u trúc l nh có đi u ki n: if và else ........................................................................ 58
C u trúc l p ......................................................................................................................... 60
C u trúc l a ch n: switch ............................................................................................. 67
C(
NG
HÀM................................................................................................. 72
Khai báo và s d ng hàm.............................................................................................. 73
Ph m vi tác d ng c a bi n............................................................................................ 77
Hàm không tr v giá tr - Hàm void. ....................................................................... 78
Tham bi n và tham tr .................................................................................................... 79
Giá tr m c đ nh c a tham s hình th c .................................................................. 82
Ch ng ch t hàm ................................................................................................................ 83
Hàm n i tuy n ................................................................................................................... 84
({m đ quy ......................................................................................................................... 85
C(
NG
CÁC K) U D
LI U CÓ C U TRÚC.............................................. 88
M ng ...................................................................................................................................... 88
Xâu kí t ............................................................................................................................... 91
C(
NG
CON TR ........................................................................................ 93
Toán t tham chi u & ..................................................................................................... 93
c * ........................................................................................ 94
Khai báo bi n con tr ...................................................................................................... 96
Con tr , m ng và xâu kí t ............................................................................................ 98
Trang |3
C++
Toán t tham chi u ng
Các phép toán s h c trên con tr .......................................................................... 100
Con tr tr vào con tr ................................................................................................ 102
Con tr void ..................................................................................................................... 104
Con tr null ...................................................................................................................... 105
Con tr hàm ..................................................................................................................... 105
C(
NG
B NH
Đ NG .......................................................................... 107
Toán t new và new[] ................................................................................................. 107
Toán t delete và delete[] ......................................................................................... 109
C(
NG
K) U D
LI U STRUCT VÀ CON TR STRUCT ................. 110
Struct .................................................................................................................................. 110
Con tr struct .................................................................................................................. 114
Struct l ng nhau ............................................................................................................ 115
Kích th
C(
c b nh c a struct ................................................................................... 115
NG
CÁC KI U D
LI U KHÁC ...................................................... 117
Ki u d li u t đ nh nghĩa ......................................................................................... 117
Ki u d li u union th
ng ........................................................................................ 117
Ki u d li u union n danh ....................................................................................... 118
Ki u d li u enum......................................................................................................... 118
C(
NG
L P TRÌN( (
NG Đ ) T
NG ........................................ 120
L ch s hình thành ........................................................................................................ 120
L p v{ đ i t
ng ........................................................................................................... 126
Hàm t o và hàm h y .................................................................................................... 130
Ch ng ch t hàm t o ...................................................................................................... 132
Sao chép hàm t o .......................................................................................................... 133
Tính đóng gói Encapsulation ................................................................................ 139
Con tr đ i t
c khai báo nh t khóa struct và union ............................................. 141
Con tr this ...................................................................................................................... 141
Th{nh viên tĩnh T khóa static ............................................................................ 143
Trang |4
C++
L pđ
ng .......................................................................................................... 140
Hàm b n và l p b n ..................................................................................................... 144
Ch ng ch t toán t ....................................................................................................... 147
Tính k th a - Inheritance......................................................................................... 153
Các m c truy c p ........................................................................................................... 156
Tính đa k th a Multiple Inheritance ............................................................... 159
Tính đa hình Polymorphism ................................................................................. 160
Tính tr u t
ng hóa - Abstraction ........................................................................ 172
Hàm m u Template Function ............................................................................... 173
L p m u Template class ......................................................................................... 173
C(
NG
NAMESPACE ............................................................................... 178
T khóa namespace ..................................................................................................... 178
T khóa using ................................................................................................................. 179
Ph m vi c a namespace ............................................................................................. 180
T|i đ nh danh cho namespace ................................................................................. 181
Namespace std ............................................................................................................... 181
C(
NG
NGO I L .................................................................................... 182
M nh đ try catch ....................................................................................................... 182
M nh đ throw ............................................................................................................... 182
Th vi n chu n exception ......................................................................................... 183
C(
NG
LÀM V) C V I FILE................................................................... 186
M file ................................................................................................................................ 186
Đóng file ............................................................................................................................ 188
File văn b n...................................................................................................................... 188
Ki m tra tr ng thái c a các c hi u ....................................................................... 189
Con tr get và put .......................................................................................................... 190
B đ m v{ Đ ng b hóa .............................................................................................. 193
C(
NG
CÁC L P T(
V) N ................................................................. 194
1. L p s ph c complex .............................................................................................. 194
Trang |5
C++
File nh phân.................................................................................................................... 192
2. L p ngăn x p stack .................................................................................................. 196
3. L p h{ng đ i queue................................................................................................. 197
3. L p vector ................................................................................................................... 198
4. L p string .................................................................................................................... 200
5. L p list .......................................................................................................................... 203
6. L p map ....................................................................................................................... 203
7. L p set .......................................................................................................................... 204
(
8. Các l p th vi n nh p xu t................................................................................... 204
NG D N TH C HÀNH ............................................................................... 212
BÀI TH C HÀNH S 1 ................................................................................................. 212
BÀI TH C HÀNH S 2 ................................................................................................. 213
BÀI TH C HÀNH S 3 ................................................................................................. 214
BÀI TH C HÀNH S 4 ................................................................................................. 215
BÀI TH C HÀNH S 5 ................................................................................................. 215
BÀI TH C HÀNH S 6 ................................................................................................. 216
BÀI T P NÂNG CAO ............................................................................................ 218
BÀI T P L N ....................................................................................................... 225
DANH SÁCH HÌNH ............................................................................................... 228
TRA C U T
KHÓA ............................................................................................ 229
C++
TÀI LI U THAM KH O ....................................................................................... 230
Trang |6
GI I THI U
1. C u trúc c a giáo trình
Gi|o trình đ c chia ra làm 17 ch ng và m i ch ng đ c chia làm
các m c khác nhau. C|c ch ng đ c s p x p theo trình t t l p trình
h ng th t c trên C đ n l p trình h ng đ i t ng và các l p th
vi n c b n. Đ c gi có th truy c p vào m c b t kì t ph n ph l c n m
đ u sách. Nhi u m c bao g m các ví d đ mô t cách s d ng. Tôi
khuyên các b n nên đ c các ví d này và có th hi u m i đo n mã
ch ng trình tr c khi đ c ch ng ti p theo.
M t cách th c t t đ tăng l ng ki n th c nh n đ c đó l{ h~y ch nh
s a, b sung mã l nh m i d a trên ví d m u theo h ng t duy c a
c a b n thân đ t đó có th hi u m t c|ch đ y đ v n i dung mà ta
ti p thu đ c.
Sau khi đ c xong giáo trình, tôi còn cung c p m t s bài t p th c hành
đ ngh đ đ c gi nên th nghi m. Hãy gi i nh ng bài t p này, chúng s
r t h u ích và giúp các b n cũng c l i ki n th c môn h c cũng nh hi u
sâu s c h n ph n lý thuy t.
Khi vi t giáo trình này, tôi không th tránh kh i sai sót. R t mong s
đóng góp ý ki n quý báu c a các b n đ c gi cũng nh c|c b n đ ng
nghi p. M i s
đóng góp xin liên h theo đ a ch email:
dnhthanh@hueic.edu.vn. Hi v ng v i các ý ki n đóng góp c a các b n,
giáo trình này s ngày càng hoàn thi n h n
2. M t vài chú ý v s t
ng thích c a C và C++
Chu n ANSI-C đ c m t t ch c tiêu chu n qu c t th ng nh t đ a
ra Nó đ c chính th c ra m t v{o th|ng
năm
v{ duy t l i vào
Trang |7
C++
M t đi u n a mà đ c gi c n l u ý h~y đ c trang cu i cùng c a cu n
s|ch đ n m đ c m t s thu t ng anh-vi t t ng ng đ c s d ng
trong giáo trình này. Tôi cũng có g ng s d ng tên g i phù h p nh t v i
đ i đa s các giáo trình hi n hành. Tuy nhiên, đ c gi cũng nên n m các
thu t ng ti ng anh t ng ng đ có th tham kh o thêm các tài li u
chuyên môn ti ng anh.
năm
Tuy nhiên ngôn ng C đ~ t n t i tr c đó m t th i gian
kh| d{i v{o năm
Tr c đó có r t nhi u trình d ch không h tr
c|c tính năng m i bao g m c chu n ANSI-C++. Giáo trình này đ c xây
d ng trên c|c ch ng trình d ch hi n đ i h tr đ y đ chu n ANSI-C++.
Tôi đ m b o r ng các ví d s ho t đ ng t t n u đ c gi s d ng m t
trình d ch h tr ANSI-C++. Có nhi u s ch n l a, có th là mi n phí ho c
các ph n m m th ng m i. Trong giáo trình này, tôi gi i thi u đ n các
các b n hai công c biên d ch C++ là GCC MinGW mi n phí và Visual
C++ - th ng m i.
Các ví d trong cu n gi|o trình n{y đ c xây d ng ch y u trên ch
đ console m{n hình DOS Đi u đó có nghĩa l{ nó s d ng ch đ văn
b n đ hi n th các k t qu . M i trình d ch C đ u h tr ch đ d ch
console. V i m t môi tr ng phát tri n tích h p IDE cho C++ mi n phí,
chúng ta có th s d ng ch ng trình Codeblocks ho c Eclipse. Chúng là
các môi tr ng phát tri n tích h p h tr so n th o và biên d ch C++.
Chúng h tr môi tr ng GCC đ biên d ch c C và C++. V i CodeBlocks,
chúng
ta
có
th
t i
ph n
m m
t i
đa
ch
http://www.codeblocks.org/downloads. Đ i v i Eclipse, nó là m t trình
so n th o và biên d ch ngôn ng l p trình chuyên nghi p nh ng ho{n
toàn mi n phí (vì ta có th c u hình k t h p v i các công c biên d ch
kh|c nhau đ t o ra môi tr ng phát tri n tích h p cho các ngôn ng l p
trình khác nhau). Chúng ta có th d‘ng nó đ so n th o và biên d ch
Java, PHP, JSP Python v{ hi n nhiên là c C/C++. Đ}y l{ m t d án mã
ngu n m , tiêu t n hàng tri u đôla c a IBM. Đ t i v b n m i nh t cho
đ n th i đi m n{y năm
l{ Eclipse Helios, ta có th truy c p đ n
đ a ch bên d i1. Đ i v i Eclipse, chúng ta nên s d ng k t h p v i
trình biên d ch C++ là MinGW, nó cũng l{ m t d án m . Chúng ta có th
t i v t i đ a ch bên d i2. V i Eclipse, thì công vi c c u hình ban đ u
t ng đ i ph c t p. Nh ng nó l{ m t trình so n th o tuy t v i. Ta có th
s d ng nó đ so n th o nhi u ngôn ng l p trình b ng c|ch c{i đ t
thêm plugin h tr . Nhi u nhà phát tri n đ~ s d ng Eclipse làm n n t i
http://ftp.jaist.ac.jp/pub/eclipse/technology/epp/downloads/release/helios/R/eclipse-cpp-helioswin32.zip
2 http://nchc.dl.sourceforge.net/project/mingw/Automated%20MinGW%20Installer/mingw-getinst/mingw-get-inst-20100831/mingw-get-inst-20100831.exe
1
Trang |8
C++
3. Trình biên d ch
cho vi c phát tri n các ng d ng c a mình: Embarcadero s d ng nó đ
phát tri n JBuider, Adobe s d ng nó đ phát tri n Flash Buider và r t
nhi u các hãng ph n m m n i ti ng khác.
N u là m t l p trình viên Java, Eclipse là m t s l a ch n không th
b qua. N u phát tri n Flash theo d án mã ngu n m t Adobe, Eclipse
cũng l{ s l a ch n hoàn h o. N u phát tri n C/C++, v i các trình so n
th o thì Eclipse cũng l{ s l a ch n không t i. Vi c s d ng thành th o
Eclipse s là m t l i th cho chúng ta khi ti n hành nghiên c u Java, l p
trình Web Flex Python sau này.
C++
Bên c nh đó ch’ng tôi cũng gi i thi u môi tr ng phát tri n tích h p
)DE Microsoft Visual Studio Đ}y l{ trình biên d ch th ng m i và là
trình biên d ch chuyên nghi p và n i ti ng nh t trên h đi u hành
Windows. Ta có th s d ng đ phát tri n các ng d ng trên n n NET
ho c các ng d ng Win32. N u mu n phát tri n các ng d ng theo
h ng c a Microsoft, ta nên s d ng Visual Studio. Phiên b n m i nh t
đ n th i đi m này là VS 2010. Nh ng c n l u ý r ng, khi nghiên c u
Visual C++, hãy ch n l a phiên b n dành cho Win32 mà không ph i là
ng d ng CLI (common language infrastructure) b i nó đ c phát tri n
trên n n NET. Và Visual C++ for NET có m t s khác bi t so v i Visual
C++ for Win32.
Trang |9
MÔ) TR
NG PHÁT TRI N TÍCH H P IDE
1. CodeBlocks
Tr c tiên, chúng ta s tìm hi u cách t o d án, biên d ch m t t p tin C++
trên CodeBlocks Đ c gi cũng c n l u ý r ng, CodeBlocks t ch c công vi c
theo các d án. Chúng ta có th biên d ch t ng t p tin cpp m t c|ch đ n l .
Tuy nhiên, làm vi c theo d án s giúp ích cho chúng ta r t nhi u khi làm
vi c v i nh ng tác v l n.
Đ u tiên chúng ta kh i đ ng codeblocks sau đó v{o File > New > Project.
Trong h p tho i hi n ra, chúng ta ch n console application (Hình 1).
Và nh p Go sau đó nh p Next. Trong h p tho i ti p theo, ta ch n C++ và
nh p Next.
Hình 1 T o m i d án trong CodeBlocks
Trong c a s qu n lý d án, ta nh p đôi chu t vào t p main.cpp. N i dung
so n th o s đ c nh p vào trong t p tin này.
N u ta mu n b sung các t p tin khác ho c các l p đ i t
sung chúng t menu File > New.
T r a n g | 10
ng, ta có th b
C++
H p tho i yêu c u đi n thông tin v d án s xu t hi n. H~y đi n tên d án,
v trí l u tr d |n Sau đó nh p Next. Cu i cùng nh p Finish.
Biên d ch ch
ng trình:
+ Nh p vào Build > Build and Run.
+ Ho c nh p phím F9.
đ ng đ nh d ng mã. Khi vi t m t ch ng trình C hay b t kì m t
ch ng trình trên m t ngôn ng l p trình nào
khác, ta c n tuân th quy ph m đ nh d ng mã
ngu n. Có nhi u chu n m c cho c|c đ nh d ng
mã ngu n: chu n Hungary, chu n l c đ{ . Dù
r ng, chúng không nh h ng đ n vi c biên d ch
ch ng trình nh ng ch’ng gi’p ng i đ c có
th d hi u ch ng trình c a chúng ta h n N u
ta không n m v ng các quy ph m này thì có th
s d ng ch c năng đ nh d ng mã ngu n t đ ng
c a CodeBlocks. Hãy kích chu t ph i vào vùng so n th o sau đó ch n
Format this file (Astyle).
T
T đ ng kh i t o ph n thân các ph ng th c c a l p. Đ h tr cho
vi c so n th o CodeBlocks cũng h tr ch c năng kh i t o nhanh mã
ngu n Đ kh i t o nhanh ph n khai b|o th}n ph ng th c c a l p t khai
báo prototype c a nó ch’ng ta đ t tr chu t vào sau khai báo l p (t c v trí
s chèn khai b|o th}n ph ng th c sau đó kích chu t ph i, ch n Insert >
All class methods without implementation.
C++
Trong h p tho i hi n ra, hãy ch n
nh ng ph ng th c mu n kh i t o
ph n th}n t ng ng sau đó nh p
Ok.
Hình 2 Kh i t o th}n ph
T r a n g | 11
ng th c
2. Eclipse Helios
Sau khi t i xong Eclipe Helios v máy, hãy ti n hành gi i nén t p tin.
Ch ng trình Eclipse không yêu c u chúng ta ph i c{i đ t nh ng nó có th
làm vi c n u trên máy tính đ~ c{i m t máy o Java. Đ t i v máy o Java,
chúng ta có th truy c p vào trang ch c a Sun (nay là Oracle) t i đ a ch
sau đ}y3.
Đ xây d ng m t ch
ng trình C/C++ trên Eclipse, chúng ta c n:
- Eclipse Helios for C/C++ (n u phiên b n t i v là dành cho Java, ta c n
ph i c{i đ t thêm plugin h tr ); ho c có th s d ng m t n b n cũ h n
c a Eclipse nh Galileo Europa .
- Công c biên d ch GCC MingW.
- Máy o Java JVM.
Các b
B
B
c c u hình trên Eclipse Helios
c 1. C{i đ t máy o Java.
c 2. Cài MinGW.
B c 3. Gi i nén Eclipse Helios sau đó kh i đ ng nó (nh p vào t p tin
eclipse.exe). Thông th ng, Eclipse s t đ ng c u hình MinGW giúp ta. N u
không, hãy th c hi n b c 4.
B c 4. Vào menu Project > Properties. Trong h p tho i xu t hi n, hãy
ch n C/C++ Build > Settings.
Trong th Tool Settings, ta ch n GCC Assembler > General. Sau đó nh p vào
bi u t ng có d u c ng m u xanh. H p tho i sau s hi n ra:
3
http://javadl.sun.com/webapps/download/AutoDL?BundleId=41723
T r a n g | 12
C++
Hình 3 C u hình MinGW trong Eclipse Helios
Hình 4 Ch n đ
ng d n đ n th m c bin c a MinGW
Ta ti n hành hãy nh p tên đ ng d n đ n th m c bin c a MinGW (ho c
nh p v{o n’t File system đ duy t đ n th m c này). M c đ nh khi c{i đ t,
th m c này s là C:\MinGW\bin Sau đó nh p Ok. V y là công vi c c u hình
đ~ ho{n t t.
Xây d ng d án đ u tiên trên Eclipse
Cũng gi ng nh CodeBlocks Eclipse cũng t ch c ch ng trình theo d án.
Đ t o m i m t d án trong Eclipse, chúng ta có ba cách:
- Vào File > New > C++ Project.
- Vào bi u t
ng t o m i d án trên thanh công c , ch n C++ Project.
- Kích chu t ph i vào c a s Project Explorer > ch n New > C++ Project.
Trong h p tho i này, n u ch n m t
d án kh thi (executable), hãy ch n
executable. Ta cũng có th ch n th
vi n dll static library T ng ng
v i d án kh thi, chúng ta có th
ch n Empty Project ho c Hello
World C++ Project. Đ i v i Empty
Project, nó s t o m t d án tr ng.
Ng c l i v i Hello World C++
Project, ta s nh n đ c m t file cpp
ch a n i dung mà chúng ta s th o
lu n trong ch ng ti p theo.
Sau đó hãy nh p vào tên d án và
nh p Next (n u ch a c u hình
MinGW), ho c nh p Finish (n u đ~ hoàn t t vi c c u hình).
Hình 5 - T o m i d án
T r a n g | 13
C++
Ti p đ n, h p tho i sau đ}y s xu t hi n.
T o m i m t file n i dung trong Eclipse. M t ch ng trình trong C
th ng chia làm hai lo i t p: .cpp và .h. T p cpp th ng ch a n i dung
ch ng trình t p h th ng ch a các khai báo.
L i khuyên tr c khi t o m i các file: hãy t o m t th m c chung đ
ch a toàn b n i dung sau này, tôi t m g i th m c n{y l{ th m c src.
Trong th m c src, hãy t o hai th m c, m t th m c cpps và m t th m c
headers Th m c cpps s ch a toàn b t p cpp th m c headers s ch a
toàn b t p .h. T p Main.cpp ch a hàm main s đ c đ t trong th m c src.
Nghĩa l{ ta s có c u tr’c t ng t nh sau:
src
cpps
headers
Main.cpp
Hi n nhiên ta hoàn toàn không nh t thi t
ph i th c hi n theo nh c u tr’c th m c
n{y Tuy nhiên đi u này s làm cho d án
c a ta tr nên sáng s a h n r t nhi u.
Chúng ta có th b sung thêm c|c th m c
ph kh|c nh ng nên tu}n th c u trúc cây
này (ví d khi c n phân bi t các t p tin cpp
thành nhi u lo i kh|c nhau thì trong th
m c cpps, hãy t o thêm c|c th m c con
kh|c
Hình 6 - C u tr’c th m c c a m t d án
Biên d ch m t d án
Đ biên d ch m t d án, hãy nh p vào bi u t
c a Eclipse.
ng sau đ}y trên thay công c
Ch n Run As > Local C/C++ Application.
M t s th thu t giúp so n th o nhanh
T r a n g | 14
C++
Hình 7 - Biên d ch m t d án
Eclipse ch a đ ng m t t p các ti n ích giúp chúng ta so n th o nhanh h n
ít phát sinh l i h n Sau đ}y tôi xin gi i thi u m t vài tính năng giúp các
chúng ta so n th o nhanh h n.
T om im tl p
Vào New > Class. H p tho i sau đ}y s hi n ra
Hình 8 - H p tho i t o m i class
Trong h p tho i này, c n l u ý source folder th m c ch a t p tin s t o
m i th ng s đ c phân tách thành t p .h và .cpp), namespace ph m vi
tác d ng c a nó trong namespace đ c ch đ nh, class name tên c a l p s
t o m i, base class tên c a l p cha mà nó s th a k (b m vào nút add đ
ch n các l p t n t i), constructor và destructor cho phép kh i t o hàm
t o và hàm h y. Chúng ta s tìm hi u nh ng khái ni m này khi làm quen v i
l p trình h ng đ i t ng.
ng th c Getter và Setter
N u khi khai báo m t l p, cùng v i các thu c tính c a nó, thay vì s d ng
hàm t o đ thi t l p giá tr ban đ u, ta có th dùng hàm setter; ho c đ ti p
nh n giá tr t các thu c tính, ta có th dùng các hàm getter. Tôi s gi i
thi u chi ti t h n v c|c ph ng th c này trong ph n l p trình h ng đ i
t ng. Trong ph n này, tôi s h ng d n cách t o chúng b ng thao tác nh p
chu t. Vào menu Source, ch n Generate Getters and Setter. Trong h p tho i
T r a n g | 15
C++
T o nhanh các ph
hi n ra, hãy ch n các thu c tính c n t o ph
đó nh p Ok.
ng th c getter và setter, sau
M t s phím t t khác
Phím t t
Ctrl+Space
main Ctrl+Space
Ctrl+Shift+F
Ctrl+/
Công d ng
B t ch đ g i nh c l nh.
Kh i t o nhanh hàm main.
Đ nh d ng nhanh mã ngu n.
Comment v‘ng m~ đ~ đ c bôi đen n u
v‘ng bôi đen đ~ ch đ comment, thì d u
comment s b h y b .
Tab
D ch toàn b n i dung b bôi đen sang ph i
m t tab.
Shift+Tab
D ch toàn b n i dung b bôi đen sang tr|i
m t tab.
Ctrl+1
Ch nh s a nhanh toàn b các t gi ng v i
t đang đ c bôi đen Sau khi ch nh s a
xong, nh p Enter đ k t thúc.
Ctrl+Shift+/
T o m t kh i comment cho v‘ng văn b n
đ~ b bôi đen
Ctrl+Shift+\
H y b v‘ng văn b n b comment b i kh i
comment.
Trên đ}y tôi đ~ gi i thi u s qua hai ch ng trình so n th o mi n phí đ
l p trình C/C++: CodeBlocks và Eclipse. V i CodeBlocks, ch c n t i và cài
đ t Môi tr ng h tr biên d ch GCC đ~ đ c tích h p s n. V i Eclipse, ta
ph i th c hi n c u hình đ k t h p v i trình biên d ch GCC. N u l{ ng i có
nhi u tr i nghi m v máy tính, thì nên ch n Eclipse b i nó l{ ch ng trình
so n th o r t chuyên nghi p. N u l{ ng i m i ti p xúc máy tính, hãy ch n
CodeBlock vì c{i đ t đ n gi n.
Visual Studio 2010 là m t môi tr ng biên d ch tích h p c a Microsoft. Nó
là trình biên d ch t t nh t, hi n đ i nh t trên h đi u hành Windows. Chúng
ta có th s d ng nó đ biên d ch C++, C#, Visual Basic, J#... Ta s tìm hi u
Visual Studio theo h ng ti p c n v i C++. M t đi u c n l u ý, v i phiên
b n 2010 này, Visual Studio có hai phiên b n dành cho C++: C++ for Net và
C++ for Win32. Chúng ta ch tìm hi u v tính năng C for Win
Trong n i
dung c a giáo trình này, ta s xây d ng các ng d ng Console trên n n
T r a n g | 16
C++
3. Visual Studio 2010 dành cho Visual C++
Win32 mà không th o lu n thêm v Visual C++ for Net b i vì nó thu c m t
ph m tr‘ t ng đ i khác so v i Visual C++ for Win32.
Kh i đ ng Visual Studio 2010.
Đ kh i đ ng VS 2010, ta có th th c hi n m t trong hai cách sau:
Nh p đ i chu t vào bi u t ng VS 2010 trên n n Desktop.
Vào Start > All Programs > Microsoft Visual Studio 2010, ch n bi u
t ng VS 2010.
Hình 9 - Giao di n t ng th c a Visual Studio 2010
T o m i d án trong VS 2010.
Trong h p tho i xu t hi n, chúng ta ch n Win32 Console Application.
T r a n g | 17
C++
Cũng nh Eclipse VS cũng qu n lý theo các workspace và các d án. Trong
VS workspace đ c g i là Solution. Trong m i workspace có th ch a
nhi u d án. N u ch a t o m t d án nào, thì khi t o m i m t d án,
workspace s t đ ng đ c t o Đ t o m i m t d án, ta vào File > New
Project (ho c t h p phím t t Ctrl+Shift+N).
Hình 10 - T o d án Win32 Console
M c name: hãy nh p tên d
án mà c n t o.
M c Location: nh p vào nút
Browse đ ch n v trí l u
tr . M c đ nh, Visual Studio
s l u tr d án th m c
Documents.
M c Solution name: t o m t
th m c con trong th m c
d án, hay t o tr c ti p
trong th m c d án.
H p tho i Hình 12 s hi n ra.
Hình 11 - Win32 Application Wizard
+ Windows application: t o ng d ng winform.
+ Console application: t o ng d ng ch y trên DOS.
T r a n g | 18
C++
Nhóm Application Type
+ Dll: t o th vi n dll.
+ Static library: t o th vi n tĩnh
Nhóm Add common header file
+ Alt: t o header t l p th vi n Alt.
+ MFC: t o header t l p th vi n MFC.
Nhóm Additional options
+ Empty project: t o d án r ng không có t p tin.
+ Export symbols: xu t b n các bi u t
ng.
+ Precompiled header: t o t p tin tiêu đ ti n biên d ch.
Hãy ch n Console Application và ch n Empty Project Sau đó nh p Finish.
T o các t p tin trong d án.
Trong c a s Solution Explorer, hãy kích chu t ph i và ch n Add:
- N u t p tin đ~ t n t i, hãy ch n Add Existing )tems Sau đó chúng ta duy t
đ n v trí t n t i t p tin.
Sau khi ch n đ c t p tin c n t o, hãy nh p tên c a t p tin sau đó nh p nút
Add. T p tin m i s đ c b sung vào d án.
T r a n g | 19
C++
- N u t p tin ch a t n t i, hãy ch n Add New Items. Trong c a s xu t hi n,
tùy thu c vào t p tin mà chúng ta c n, hãy ch n lo i t ng ng. Thông
th ng, trong d án c a C++, chúng ta s d ng hai t p tin l{ tiêu đ .h và
th}n ch ng trình cpp Sau đó h~y nh p tên c a t p tin và nh p Ok. T p tin
tiêu đ h th ng ch a các khai báo prototype c a hàm ho c l p. Ngoài ra,
nó có th ch a các hàm macro, các khai báo h ng và bi n toàn c c đ c s
d ng trong toàn b ch ng trình T p tin cpp th ng ch a ph n thân c a
các hàm ho c l p. Khi làm vi c v i các d án trong C++, chúng ta nên tách
ch ng trình th{nh nhi u ph n và nên s d ng các t p tiêu đ đ làm cho
ch ng trình g n gàng và d hi u h n
Hình 12 - B sung thêm m t t p tin
ng cho d án.
Hình 13 - B sung thêm l p đ i t
Nh p Add. C a s sau đ}y s xu t hi n
T r a n g | 20
đ}y ch’ng ta ch n C++
ng
C++
- Add Class: b sung các l p đ i t
class.
Hình 14 - T o l p b ng Class Wizard
- Class name: tên c a l p.
- .h file: tên c a tiêu đ l p cũng l{ tên c a t p tin tiêu đ .
- .cpp file: tên c a t p tin cpp t
ng ng v i l p.
- Base class: n u l p m i t o ra th a k t m t l p khác, hãy nh p tên c a
l p c s v{o đ}y
- Access: m c th a k c a l p đang t o t l p c s .
- Virtual destructor: t o m t ph
ng th c h y o.
- Inline: t o m t ph ng th c inline. Tuy chúng ta có th s d ng t khóa
n{y nh ng c ch làm vi c c a Visual C++ là t đ ng b sung inline khi
biên d ch n u ph ng th c đ c cho là phù h p đ s d ng inline. Đi u đó
có nghĩa l{ chúng ta không c n d‘ng đ n t khóa này.
Biên d ch d án.
- Đ biên d ch toàn b d án mà không th c thi d án, chúng ta vào Build,
ch n Build Solution.
M t s phím t t trong Visual Studio 2010.
T r a n g | 21
C++
- Đ biên d ch và th c thi m t d án, chúng ta nh p vào Debug > Start
Debugging (ho c Start without Debugging).
- T o vùng comment ch’ thích bôi đen v‘ng m~ c n t o chú thích, nh n
t h p Ctrl+K, Ctrl+C.
- H y b v‘ng comment bôi đen v‘ng m~ đ~ comment nh n t h p Ctrl+K,
Ctrl+U.
- Đ nh d ng mã ngu n bôi đen v‘ng m~ c n đ nh d ng, nh n t h p Ctrl+K,
Ctrl+F.
- T đ ng hoàn t t mã và g i nh c l nh: t h p Ctrl+Space.
Visual Studio 2010 không h tr c|c tính năng m nh m cho vi c kh i t o
mã ngu n. Tuy nhiên, n u chúng ta mong mu n làm vi c đ n gi n và hi u
qu h n thì ta có th s d ng ti n ích b tr . M t trong nh ng ti n ích làm
vi c khá hi u qu là Visual Assist. Phiên b n cho đ n th i đi m n{y năm
2010) là 10.6.
Xem bi u đ l p.
Hình 15 - Xem bi u đ l p
T r a n g | 22
C++
Đ quan sát bi u đ l p trong VS 2010, ta nh p chu t ph i vào tên d án
(trong c a s Solution Explorer), ch n Show class diagram Sau đó chúng
ta kéo th các l p đ i t ng vào vùng bi u đ .
Ch
C(
ng
C b n v C++
NG
C
C u trúc c a m t ch
B N V C++
ng trình C
M t cách th c t t nh t đ h c l p trình đó l{ h~y th vi t m t ch ng
trình đ u tiên. N u chúng ta đ~ t ng làm quen v i m t ngôn ng l p trình
n{o đó thì ch c h n ai cũng bi t đ n ví d kinh đi n c a m t ngôn ng l p
trình đó l{ ch ng trình (ello world
[1.]
[2.]
[3.]
[4.]
[5.]
[6.]
[7.]
[8.]
ng trình
K t qu
//my first program
#include
using namespace std;
int main()
{
cout (ello world
return 0;
}
Gi i thích v ch
Hello, world !
ng trình
[1.] Các kí t n m sau d u // s không đ c biên d ch m{ nó đ c hi u là
d u comment dòng ch’ thích Trong C cũng nh C vi c chú thích
trên m t dòng s đ c đ t sau d u //. N u mu n t o m t chú thích
nhi u dòng, chúng ta có th s d ng d u /* T o chú thích đây */
[2.] Dòng này b t đ u b ng kí t #include. Ti p đ n là tên t p tin tiêu đ
(ch a c|c th vi n Th vi n iostream đ c đ t trong d u . Nó ch a
các hàm xu t nh p c b n. Hàm này là m t ph n c a namespace std.
[3.] Trong C++, các thành ph n c a th vi n chu n đ c khai báo trong
namespace. đ}y l{ namespace std Đ có th truy xu t đ n các thành
ph n c a nó, chúng ta mô t nó b ng t khóa using Trong th vi n
chu n c a C++, đ i t ng cout đ c t ch c trong namespace std.
[4.] B t kì m t ch ng trình C n{o cũng ph i có m t h{m main đ th c
thi ch ng trình M t hàm s đ c khai báo theo c u trúc trên.
T khóa int mô t ki u d li u mà hàm tr v là integer. Chúng ta c n
l u ý r ng trong ch ng trình C thì ta có th tùy ý khai báo là void ho c
int nh ng trong C thì b t bu c ph i khai báo là int. V y int hay void
T r a n g | 23
C++
Mã ch
Ch
ng
C b n v C++
trong tr ng h p này có th c s quan tr ng ? Chúng ta nên luôn khai
báo hàm main có ki u d li u tr v là ki u int. S dĩ nh v y là vì khi
hàm main tr v ki u int thì theo quy c, n u ch ng trình có l i, nó s
tr v m t m~ int kh|c v{ ng c l i, n u ch ng trình không có l i, nó
s tr v mã int 0. L i đ}y l{ l i ch ng trình liên quan đ n quá trình
biên d ch, ch không ph i là l i liên quan đ n cú pháp. Chúng ta s nh n
th y mã mà nó tr v trong dòng thông báo cu i cùng khi biên d ch:
process returned 0 (0x0).
Tên hàm là main. Ti p theo là c p d u ngo c đ n d‘ng đ ch a tham s
đính kèm Thông th ng m t ch ng trình ng d ng s ch a hai tham
s trong hàm main là int argc và char* args[]. Các tham s này g i là
tham s dòng l nh. Ti p theo là d u {}. Bên trong c p d u n{y l{ ch ng
trình chính.
[5.] D u m kh i.
[6.] Đ i t ng cout đ c là C-out) là chu n d‘ng đ xu t d li u ra màn
hình. Chúng ta c n l u ý hàm printf v n ho t đ ng t t trong tr ng h p
này. N u dùng hàm printf thì ta không c n khai b|o th vi n iostream và
namespace std trên. Khi s d ng đ i t ng cout, chúng ta cũng có th
b qua dòng l nh [3.] v{ thay v{o đó ta s vi t std::cout. Khi s d ng đ i
t ng cout, chúng ta có thêm m t cách th c đ xu ng dòng thay vì dùng
\n đó l{ endl Đ i t ng cout th ng đi v i toán t xu t 255
signed: -215 -> 215-1
unsigned: 0 -> 216-1
signed: -231 -> 231-1
unsigned: 0 -> 232-1
signed: -231 -> 231-1
unsigned: 0 -> 232-1
signed: -263 -> 263-1
unsigned: 0 -> 264-1
true và false
7 s th p phân
15 s th p phân
15 s th p phân
C++
Trong máy tính, b nh đ c t ch c theo các byte. M t byte là m t
đ n v đo l ng t i thi u mà chúng ta có th qu n lý trong C++. M t byte có
th l u m t bi n char Thêm v{o đó m|y tính cũng qu n lý nh ng ki u d
li u ph c t p h n B ng sau đ}y li t kê các ki u d li u v{ kích th c t ng
ng.
Ch
ng
Bi n và Các ki u d li u
double
dài
wchar_t Kí t dài
2/4 byte
Kích th c trong b nh và mi n giá tr c a các ki u d li u còn ph
thu c vào h th ng v{ ch ng trình d ch t ng ng. Giá tr đ c đ a ra
đ}y l{ trên h th ng Windows 32 bit và trình d ch GCC MinGW Nh ng đ i
v i h th ng khác, các giá tr này có th thay đ i (ví d ki u int và long trên
Windows
bit v{
bit l{ byte nh ng trên Linux
bit l{ byte v{ trên
Linux 64 bit là 8 byte).
Khai báo bi n
Nh ví d trên, ta th y r ng, mu n s d ng m t bi n trong C++, ta
c n khai báo bi n v i ki u d li u mà ta mong mu n. C u trúc khai báo
;
Ví d
int a; //Khai báo bi n a ki u nguyên
float mynumber; //Khai báo bi n mynumber ki u float
bool istrue; //Khai báo bi n istrue ki u bool
long num1, num2, num3; //Khai báo ba bi n num1, num2, num3 cùng ki u
long
Chú ý:
N u khi khai báo bi n thu c các ki u nguyên mà ta không s d ng khai báo
có d u (signed) ho c không d u unsigned thì ch ng trình d ch m c đ nh
s quy đ nh là ki u nguyên có d u.
int mynum;
ng đ
ng signed int mynum
Đ i v i ki u char thì có ngo i l . Chúng ta nên khai b|o t ng minh là
signed char ho c unsigned char.
Đ i v i signed int và unsigned int có th vi t đ n gi n là signed ho c
unsigned.
T r a n g | 28
C++
t
Ch
ng
Bi n và Các ki u d li u
N u mu n ch c ch n v kích th c c a ki u d li u mà ta c n s d ng, hãy
s d ng hàm sizeof đ x|c đ nh kích th c b nh c a ki u d li u. Hàm
sizeof(tên bi n) ho c sizeof(ki u d li u) tr v ki u d li u nguyên.
Ch
ng trình
#include
K t qu
4 (trên windows 32 bit)
using namespace std;
int main()
{
int a;
cout>bi n_n;
Các bi n s bi n
bi n_n c n đ c khai b|o Thông th ng,
nh ng bi n n{y ch a đ c kh i t o giá tr Sau đ}y l{ m t vài ví d v vi c
s d ng đ i t ng cout:
Ch
ng
Xu t Nh p c b n
nh p ta l i nh p vào m t kí t không ph i là s thì ch ng trình d ch s b
qua vi c kh i t o giá tr cho bi n đó Ch ng trình ho{n to{n không phát
sinh l i (process returned 0).
Khi s d ng đ i t ng cout và cin, ta c n khai báo không gian s
d ng namespace là std. Ho c, có th vi t ng n g n h n std::
Ch ng trình
Ch ng trình
#include
#include
using namespace std;
int main(){
int main(){
std cout (ello
cout (ello
}
}
Đ i t ng cin và xâu kí t : trong ví d trên tôi đ~ s d ng đ i t ng cin
đ tách m t xâu kí t và gán cho bi n xâu kí t s. Khi s d ng đ i t ng cin
v i xâu kí t , c n l u ý m t đi m: đ i t ng cin s d ng vi c trích tách n u
nó đ c th y m t kí t tr ng trong xâu kí t đó có nghĩa n u xâu nh p vào
l{ Toi di hoc thì nó ch t|ch đ c x}u Toi v{ g|n cho bi n s Đ kh c
ph c nh c đi m này c a đ i t ng cin, C++ cung c p cho chúng ta m t
hàm khác là hàm getline, có ch c năng t ng t .
Cú pháp:
getline(chu n_nh p_d _li u, tên_bi n_xâu)
Khi nh p xu t d
li u t
bàn phím và màn hình, tham s
chu n_nh p_xu t_d _li u luôn s d ng là cin. N u làm vi c v i t p tin file,
thì tham s này s t ng ng v i tên c a file. Chúng ta s tìm hi u tr ng
h p này trong ch ng
c a giáo trình.
Ch
ng trình
#include
#include
using namespace std;
{
T r a n g | 54
C++
int main()
Ch
ng
string s;
Xu t Nh p c b n
cout
Nhap ten
cout
Chao ban
getline(cin, s);
return 0;
s
}
Nh p d li u nh l p stringstream
Đ s d ng l p stringstream, chúng ta c n khai báo t p header là
. L p này cho phép m t đ i t ng d a trên c s c a xâu có th
đ c chuy n đ i nh m t lu ng stream. Trong th vi n sstream, ta có ba
l p đ i t ng lu ng x}u c b n: stringstream, istringstream và
ostringstream. Các lu ng này có th đ c s d ng đ tách ho c chèn xâu,
nó đ c bi t h u d ng khi chuy n m t xâu thành s v{ ng c l i. Ví d , n u
mu n tách m t s integer t m t x}u
ta có th vi t nh sau
string mystr
int mynum;
stringstream(mystr)>>mynum;
Đ}y không ph i là cách th c duy nh t giúp ta chuy n đ i m t xâu
thành s Trong th vi n string, cung c p cho ch’ng ta c|c h{m đ th c thi
công vi c đó nh h{m atof x}u s th c thành s th c), atoll (xâu thành s
nguyên dài thành s nguyên dài),... Tuy nhiên, các hàm này ch y u làm vi c
v i xâu kí t c a C, t c là char*.
Ví d sau đ}y s cho th y cách s d ng l p stringstream đ nh p d
li u t bàn phím.
Ch
ng trình
#include
using namespace std;
int main()
T r a n g | 55
C++
#include
Ch
{
ng
Xu t Nh p c b n
string mystr;
int mynum;
getline(cin,mystr);
stringstream(mystr)>>mynum;
couta;
sum+=a;
}
cout0)
cout
x
la so duong
cout
x
la so duong
if((x>0)&&(y>0))
{
}
cout
y
la so duong
endl
N u có nhi u câu l nh ch u s chi ph i c a câu l nh if, thì chúng s
c đ t trong kh i l nh.
đ
Trong tr ng h p n u bi u_th c đi u_ki n sai, ta c n th c thi m t
m nh đ kh|c Khi đó ta s s d ng thêm t khóa else.
Cú pháp:
if(bi u_th c đi u_ki n đúng)
{
}else
{
}
Ví d
if (x%2==0)
cout
x
la so chan
cout
x
la so le
else
Ví d
if(x>0)
T r a n g | 59
C++
C u trúc if (l n else) có th l ng v{o nhau Khi đó ch’ng ta s có m t
c u trúc l nh ph c h p.
ng
Ch
cout
x
C|c c u trúc l nh đi u khi n
else if(x>n;
2
Nhap n
1
while (n>0){
cout[...]... Microsoft Nó là trình biên d ch t t nh t, hi n đ i nh t trên h đi u hành Windows Chúng ta có th s d ng nó đ biên d ch C++, C#, Visual Basic, J# Ta s tìm hi u Visual Studio theo h ng ti p c n v i C++ M t đi u c n l u ý, v i phiên b n 2010 này, Visual Studio có hai phiên b n dành cho C++: C++ for Net và C++ for Win32 Chúng ta ch tìm hi u v tính năng C for Win Trong n i dung c a giáo trình này, ta s... g | 22 C++ Đ quan sát bi u đ l p trong VS 2010, ta nh p chu t ph i vào tên d án (trong c a s Solution Explorer), ch n Show class diagram Sau đó chúng ta kéo th các l p đ i t ng vào vùng bi u đ Ch C( ng C b n v C++ NG C C u trúc c a m t ch B N V C++ ng trình C M t cách th c t t nh t đ h c l p trình đó l{ h~y th vi t m t ch ng trình đ u tiên N u chúng ta đ~ t ng làm quen v i m t ngôn ng l p trình n{o... trong toàn b ch ng trình T p tin cpp th ng ch a ph n thân c a các hàm ho c l p Khi làm vi c v i các d án trong C++, chúng ta nên tách ch ng trình th{nh nhi u ph n và nên s d ng các t p tiêu đ đ làm cho ch ng trình g n gàng và d hi u h n Hình 12 - B sung thêm m t t p tin ng cho d án Hình 13 - B sung thêm l p đ i t Nh p Add C a s sau đ}y s xu t hi n T r a n g | 20 đ}y ch’ng ta ch n C++ ng C++ - Add Class:... ch ng trình: + Nh p vào Build > Build and Run + Ho c nh p phím F9 đ ng đ nh d ng mã Khi vi t m t ch ng trình C hay b t kì m t ch ng trình trên m t ngôn ng l p trình nào khác, ta c n tuân th quy ph m đ nh d ng mã ngu n Có nhi u chu n m c cho c|c đ nh d ng mã ngu n: chu n Hungary, chu n l c đ{ Dù r ng, chúng không nh h ng đ n vi c biên d ch ch ng trình nh ng ch’ng gi’p ng i đ c có th d hi u ch ng trình. .. u s d ng h p lí ch ng trình s r t sáng s a và d đ c ng trình in ra dòng ch Chao ban ban co khoe khong ng trình in ra hai dòng ch trên hai dòng phân bi t (oa ky ng trình in ra tam gi|c đ u v i c|c đ nh là các d u * * * * C++ Bài t p 1 1 Hãy vi t ch 2 Hãy vi t ch Vietnam v{ 3 Hãy vi t ch T r a n g | 25 Ch C( ng Bi n và Các ki u d li u NG BI N VÀ CÁC KI U D LI U T ng ng v i ch ng trình (ello world ch’ng... ta nên s d ng ti p T r a n g | 24 C++ Chú ý: Ch ng C b n v C++ d u đóng thông th ng các trình so n th o s h tr m t cách t đ ng) Sau đó h~y nh p n i dung c n thi t vào bên trong c p d u này Đi u đó s tránh kh i s nh m l n khi ch ng trình có qu| nhi u d u đóng m Đ nh n bi t đ c ph m vi nh h ng c a các kh i l nh hãy s d ng phím tab đ t o ra s l i lõm khi vi t m~ ch ng trình Nh trong ví d trên, đ i t... comment Trên đ}y tôi đ~ gi i thi u s qua hai ch ng trình so n th o mi n phí đ l p trình C /C++: CodeBlocks và Eclipse V i CodeBlocks, ch c n t i và cài đ t Môi tr ng h tr biên d ch GCC đ~ đ c tích h p s n V i Eclipse, ta ph i th c hi n c u hình đ k t h p v i trình biên d ch GCC N u l{ ng i có nhi u tr i nghi m v máy tính, thì nên ch n Eclipse b i nó l{ ch ng trình so n th o r t chuyên nghi p N u l{ ng i... s gi i thi u trong ph n l p trình h ng đ i t ng trong C++ T khóa trong C++ có th có m t ho c nhi u t N u t khóa có nhi u t , thì gi a các t có d u g ch chân (_) Kí t tr ng và các kí t đ c bi t không đ c phép s d ng trong t khóa, tên hàm, tên bi n Tên c a chúng không đ c b t đ u b ng kí t s T r a n g | 26 C++ T khóa Ch ng Bi n và Các ki u d li u B ng t khóa chu n trong C++ asm, auto, bool, break,... là m t ph n c a namespace std [3.] Trong C++, các thành ph n c a th vi n chu n đ c khai báo trong namespace đ}y l{ namespace std Đ có th truy xu t đ n các thành ph n c a nó, chúng ta mô t nó b ng t khóa using Trong th vi n chu n c a C++, đ i t ng cout đ c t ch c trong namespace std [4.] B t kì m t ch ng trình C n{o cũng ph i có m t h{m main đ th c thi ch ng trình M t hàm s đ c khai báo theo c u trúc... ta c n l u ý r ng trong ch ng trình C thì ta có th tùy ý khai báo là void ho c int nh ng trong C thì b t bu c ph i khai báo là int V y int hay void T r a n g | 23 C++ Mã ch Ch ng C b n v C++ trong tr ng h p này có th c s quan tr ng ? Chúng ta nên luôn khai báo hàm main có ki u d li u tr v là ki u int S dĩ nh v y là vì khi hàm main tr v ki u int thì theo quy c, n u ch ng trình có l i, nó s tr v m t m~