You are on page 1of 20

Updatesofts.

com Ebooks Team


Trang 1
C++ Cn bn v nng cao

Mc lc:
I. C bn v C++ (2)
I. Cu trc ca mt trng trnh C++ (2)
II. Cc bin kiu v hng s (5)
III. Cc ton t (13)
IV. Giao tip vi Console (19)
II. Cc cu trc iu khin v Hm (22)
I. Cu trc d liu iu khin (22)
II. Hm I (29)
III. Hm II (34)
III. D liu nng cao (41)
I. Mng (41)
II. Su k t (48)
III. Con tr (54)
IV. B nh ng (65)
V. Cc cu trc (69)
VI. Cc kiu d liu do ngi dng nh ngha. (typedef, union, enum) (75)

Updatesofts.com Ebooks Team
Trang 2
Cu trc ca mt chng trnh C++

C l mt trong nhng cch tt nht bt u hc mt ngn ng lp trnh l bng mt
chng trnh. Vy y l chng trnh u tin ca chng ta :
// my first program in C++

#include <iostream.h>

int main ()
{
cout << "Hello World!";
return 0;
}
Hello World!
Chng trnh trn y l chng trnh u tin m hu ht nhng ngi hc ngh lp
trnh vit u tin v kt qu ca n l vit cu "Hello, World" ln mn hnh. y l mt
trong nhng chng trnh n gin nht c th vit bng C++ nhng n bao gm
nhng phn c bn m mi chng trnh C++ c. Hy cng xem xt tng dng mt :
// my first program in C++
y l dng ch thch. Tt c cc dng bt u bng hai du s (//) c coi l cht thch
m chng khng c bt k mt nh hng no n hot ng ca chng trnh. Chng c
th c cc lp trnh vin dng gii thch hay bnh phm bn trong m ngun ca
chng trnh. Trong trng hp ny, dng ch thch l mt gii thch ngn gn nhng g
m chng trnh chng ta lm.
#include <iostream.h>
Cc cu bt u bng du (#) c dng cho preprocessor (ai dch h ti t ny vi).
Chng khng phi l nhng dng m thc hin nhng c dng bo hiu cho trnh
dch. y cu lnh #include <iostream.h> bo cho trnh dch bit cn phi
"include" th vin iostream. y l mt th vin vo ra c bn trong C++ v n phi
c "include" v n s c dng trong chng trnh. y l cch c in s dng
th vin iostream
int main ()
Dng ny tng ng vi phn bt u khai bo hm main. Hm main l im m tt c
cc chng trnh C++ bt u thc hin. N khng ph thuc vo v tr ca hm ny (
u, cui hay gia ca m ngun) m ni dung ca n lun c thc hin u tin khi
chng trnh bt u. Thm vo , do nguyn nhn ni trn, mi chng trnh C++ u
phi tn ti mt hm main.
Theo sau main l mt cp ngoc n bi v n l mt hm. Trong C++, tt c cc hm
m sau l mt cp ngoc n () th c ngha l n c th c hoc khng c tham s

Updatesofts.com Ebooks Team
Trang 3
(khng bt buc). Ni dung ca hm main tip ngay sau phn khai bo chnh thc c
bao trong cc ngoc nhn ( { } ) nh trong v d ca chng ta
cout << "Hello World";
Dng lnh ny lm vic quan trng nht ca chng trnh. cout l mt dng (stream)
output chun trong C++ c nh ngha trong th vin iostream v nhng g m dng
lnh ny lm l gi chui k t "Hello World" ra mn hnh.
Ch rng dng ny kt thc bng du chm phy ( ; ). K t ny c dng kt thc
mt lnh v bt buc phi c sau mi lnh trong chng trnh C++ ca bn (mt trong
nhng li ph bin nht ca nhng lp trnh vin C++ l qun mt du chm phy).
return 0;
Lnh return kt thc hm main v tr v m i sau n, trong trng hp ny l 0. y l
mt kt thc bnh thng ca mt chng trnh khng c mt li no trong qu trnh thc
hin. Nh bn s thy trong cc v d tip theo, y l mt cch ph bin nht kt thc
mt chng trnh C++.
Chng trnh c cu trc thnh nhng dng khc nhau n tr nn d c hn nhng
hon ton khng phi bt buc phi lm vy. V d, thay v vit
int main ()
{
cout << " Hello World ";
return 0;
}
ta c th vit
int main () { cout << " Hello World "; return 0; }
cng cho mt kt qu chnh xc nh nhau.
Trong C++, cc dng lnh c phn cch bng du chm phy ( ;). Vic chia chng
trnh thnh cc dng ch nhm cho n d c hn m thi.
Cc ch thch.
Cc ch thch c cc lp trnh vin s dng ghi ch hay m t trong cc phn ca
chng trnh. Trong C++ c hai cch ch thch
// Ch thch theo dng
/* Ch thch theo khi */
Ch thch theo dng bt u t cp du x (//) cho n cui dng. Ch thch theo khi
bt u bng /* v kt thc bng */ v c th bao gm nhiu dng. Chng ta s thm
cc ch thch cho chng trnh :
/* my second program in C++ Hello World! I'm a C++ program

Updatesofts.com Ebooks Team
Trang 4
with more comments */

#include <iostream.h>

int main ()
{
cout << "Hello World! ";
// says Hello World!
cout << "I'm a C++
program"; // says I'm a C++
program
return 0;
}
Nu bn vit cc ch thch trong chng trnh m khng s dng cc du //, /* hay */,
trnh dch s coi chng nh l cc lnh C++ v s hin th cc li.

Updatesofts.com Ebooks Team
Trang 5
Cc bin, kiu v hng s
Identifiers
Mt tn (indentifiers) hp l l mt chui gm cc ch ci, ch s hoc k t gch di.
Chiu di ca mt tn l khng gii hn.
K t trng, cc k t nh du u khng th c mt trong mt tn. Ch c ch ci, ch
s v k t gch di l c cho php. Thm vo , mt tn bin lun phi bt u
bng mt ch ci. Chng cng c th bt u bng k t gch di ( _ ) nhng k t ny
thng c dnh cho cc lin kt bn ngoi (external link). Khng bao gi chng bt
u bng mt ch s.
Mt lut na m bn phi quan tm n khi to ra cc tn ca ring mnh l chng khng
c trng vi bt k t kho no ca ngn ng hay ca trnh dch, v d cc tn sau y
lun lun c coi l t kho theo chun ANSI-C++ v do vy chng khng th c
dng t tn
asm, car, bool, break, marry, catch, to char, class, const,
const_cast, continue, default, delete, do, double,
dynamic_cast, else, enum, explicit, extern, false, float,
for, friend, goto, if, inline, int, long, mutable,
namespace, new, operator, private, protected, public, to
register, reinterpret_cast, return, short, signed, sizeof,
static, static_cast, struct, switch, template, this, throw,
true, try, typedef, typeid, typename, union, unsigned,
using, virtual, void, volatile, wchar_t
Thm vo , mt s biu din khc ca cc ton t (operator) cng khng c dng
lm tn v chng l nhng t c dnh ring trong mt s trng hp.
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq,
xor, xor_eq
Trnh dch ca bn c th thm mt t dnh ring c trng khc. V d, rt nhiu trnh
dch 16 bit (nh cc trnh dch cho DOS) cn c th cc t kho far, huge v near.
Ch : Ngn ng C++ l "case sensitive" c ngha l phn bit ch hoa ch thng. Do
vy bin RESULT khc vi result cng nh Result.
Cc kiu d liu
Khi lp trnh, chng ta lu tr cc bin trong b nh ca my tnh nhng my tnh phi
bit chng ta mun lu tr g trong chng v cc kiu d liu khc nhau s cn lng b
nh khc nhau.

Updatesofts.com Ebooks Team
Trang 6
B nh ca my tnh chng ta c t chc thnh cc byte. Mt byte l lng b nh
nh nht m chng ta c th qun l. Mt byte c th dng lu tr mt loi d liu nh
nh l kiu s nguyn t 0 n 255 hay mt k t. Nhng my tnh c th x l cc kiu
d liu phc tp hn bng cch gp nhiu byte li vi nhau, nh s nguyn di hay s
thp phn. Tip theo bn s c mt danh sch cc kiu d liu c bn trong C++ cng
nh min gi tr m chng c th biu din
Tn
S
byte
M t Min gi tr
char 1 K t hay kiu s nguyn 8-bit
c du: -128 to 127
khng du: 0 to 255
short 2 kiu s nguyn 16-bit
c du: -32763 to 32762
khng du: 0 to 65535
long 4 kiu s nguyn 32-bit
c du:-2147483648 to
2147483647
khng du: 0 to 4294967295
int *
S nguyn. di ca n ph thuc vo h
thng, nh trong MS-DOS n l 16-bit, trn
Windows 9x/2000/NT l 32 bit...
Xem short, long
float 4 Dng du phy ng 3.4e + / - 38 (7 digits)
double 8
Dng du phy ng vi chnh xc gp
i
1.7e + / - 308 (15 digits)
long
double
10
Dng du phy ng vi chnh xc hn
na
1.2e + / - 4932 (19 digits)
bool 1
Gi tr logic. N mi c thm vo chun
ANSI-C++. Bi vy khng phi tt c cc
trnh dch u h tr n.
true hoc false
Ngoi cc kiu d liu c bn ni trn cn tn ti cc con tr v cc tham s khng kiu
(void) m chng ta s xem xt sau.
Khai bo mt bin
c th s dng mt bin trong C++, u tin chng ta phi khai bo n, ghi r n l
kiu d liu no. Chng ta ch cn vit tn kiu (nh int, short, float...) tip theo sau
l mt tn bin hp l. V d
int a;
float mynumber;
Dng u tin khai bo mt bin kiu int vi tn l a. Dng th hai khai bo mt bin
kiu float vi tn mynumber. Sau khi c khai bo, cc bin trn c th c dng
trong phm vi ca chng trong chng trnh.

Updatesofts.com Ebooks Team
Trang 7
Nu bn mun khai bo mt vi bin c cng mt kiu v bn mun tit kim cng sc
vit bn c th khai bo chng trn mt dng, ngn cch cc tn bng du phy. V d
int a, b, c;
khai bo ba bin kiu int (a,b v c) v hon ton tng ng vi :
int a;
int b;
int c;
Cc kiu s nguyn (char, short, long and int) c th l s c du hay khng du tu
theo min gi tr m chng ta cn biu din. V vy khi xc nh mt kiu s nguyn
chng ta t t kho signed hoc unsigned trc tn kiu d liu. V d:
unsigned short NumberOfSons;
signed int MyAccountBalance;
Nu ta khng ch r signed or unsigned n s c coi l c du, v vy trong khai bo
th hai chng ta c th vit :
int MyAccountBalance
cng hon ton tng ng vi dng khai bo trn. Trong thc t, rt t khi ngi ta
dng n t kho signed. Ngoi l duy nht ca lut ny kiu char. Trong chun ANSI-
C++ n l kiu d liu khc vi signed char v unsigned char.
c th thy r hn vic khai bo trong chng trnh, chng ta s xem xt mt on m
C++ v d nh sau:
// operating with variables

#include <iostream.h>

int main ()
{
// declaring variables:
int a, b;
int result;

// process:
a = 5;
b = 2;
a = a + 1;
result = a - b;

// print out the result:
cout << result;

// terminate the program:
4

Updatesofts.com Ebooks Team
Trang 8
return 0;
}
ng lo lng nu nh vic khai bo c v hi l lng vi bn. Bn s thy phn chi tit
cn li trong phn tip theo
Khi to cc bin
Khi khai bo mt bin, gi tr ca n mc nhin l khng xc nh. Nhng c th bn s
mun n mang mt gi tr xc nh khi c khai bo. lm iu , bn ch cn vit
du bng v gi tr bn mun bin s mang:
type identifier = initial_value ;
V d, nu chng ta mun khai bo mt bin int l a cha gi tr 0 ngay t khi khi to,
chng ta s vit :
int a = 0;
B xung vo cch khi to kiu C ny, C++ cn c thm mt cch mi khi to bin
bng cch bc mt cp ngoc n sau gi tr khi to. V d :
int a (0);
C hai cch u hp l trong C++.
Phm vi hot ng ca cc bin
Tt c cc bin m chng ta s s dng u phi c khai bo trc. Mt im khc bit
gia Cv C++ l trong C++ chng ta c th khai bo bin bt k ni no trong chng
trnh, thm ch l ngay gia cc lnh thc hin ch khng ch l u khi lnh nh
trong C.
Mc d vy chng ta vn nn theo cch ca ngn ng C khi khai bo cc bin bi v n
s rt hu dng khi cn sa cha mt chng trnh c tt c cc phn khai bo c gp
li vi nhau. Bi vy, cch thng dng nht khai bo bin l t n trong phn bt u
ca mi hm (bin cc b) hay trc tip trong thn chng trnh, ngoi tt c cc hm
(bin ton cc).
Global variables (bin ton cc) c th c s dng bt k u trong chng trnh,
ngay sau khi n c khai bo.
Tm hot ng ca local variables (bin cc b) b gii hn trong phn m m n c
khai bo. Nu chng c khai bo u mt hm (nh hm main), tm hot ng s l
ton b hm main. iu c ngha l trong v d trn, cc bin c khai bo trong

Updatesofts.com Ebooks Team
Trang 9
hm main() ch c th c dng trong hm , khng c dng bt k u khc.
Thm vo cc bin ton cc v cc b, cn c cc bin ngoi (external). Cc bin ny
khng nhng c dng trong mt file m ngun m cn trong tt c cc file c lin
kt trong chng trnh.
Trong C++ tm hot ng ca mt bin chnh l khi lnh m n c khai bo (mt
khi lnh l mt tp hp cc lnh c gp li trong mt bng cc ngoc nhn { } ). Nu
n c khai bo trong mt hm tm hot ng s l hm , cn nu c khai bo
trong vng lp th tm hot ng s ch l vng lp ....
Cc hng s
Mt hng s l bt k mt biu thc no mang mt gi tr c nh, nh:
Cc s nguyn
1776
707
-273
chng l cc hng mang gi tr s. Ch rng khi biu din mt hng kiu s chng ta
khng cn vit du ngoc kp hay bt k du hiu no khc.
Thm vo nhng s h c s 10 ( ci m tt c chng ta u bit) C++ cn cho php
s dng cc hng s c s 8 v 16. biu din mt s h c s 8 chng ta t trc n
k t 0, biu din s h c s 16 chng ta t trc n hai k t 0x. V d:
75 // C s 10
0113 // c s 8
0x4b // c s 16
Cc s thp phn (dng du phy ng)
Chng biu din cc s vi phn thp phn v/hoc s m. Chng c th bao gm phn
thp phn, k t e (biu din 10 m...).
3.14159 // 3.14159
6.02e23 // 6.02 x 10
23

1.6e-19 // 1.6 x 10
-19

3.0 // 3.0
K t v xu k t
Trong C++ cn tn ti cc hng khng phi kiu s nh:
'z'
'p'
"Hello world"
"How do you do?"

Updatesofts.com Ebooks Team
Trang 10
Hai biu thc u tin biu din cc k t n, cc k t c t trong du nhy n ('),
hai biu thc tip theo biu thc cc xu k t c t trong du nhy kp (").
Khi vit cc k t n hay cc xu k t cn phi chng trong cc du nhy phn
bit vi cc tn bin hay cc t kho. Ch :
x
'x'
x tr n bin x trong khi 'x' l k t hng 'x'.
Cc k t n v cc xu k t c mt tnh cht ring bit l cc m iu khin. Chng l
nhng k t c bit m khng th c vit bt k u khc trong chng trnh nh l
m xung dng (\n) hay tab (\t). Tt c u bt u bng du x ngc (\). Sau y l
danh sch cc m iu khin :
\n
xung dng
\r
li v u dng
\t
k t tab
\v
cn thng theo chiu dc
\b
backspace
\f
sang trang
\a
Ku bp
\'
du nhy n
\"
du nhy kp
\
du hi
\\
k t x ngc
V d:
'\n'
'\t'
"Left \t Right"
"one\ntwo\nthree"
Thm vo , biu din mt m ASCII bn cn s dng k t x ngc (\) tip theo
l m ASCII vit trong h c s 8 hay c s 16. Trong trng hp u m ASCII c
vit ngay sau du s ngc, trong trng hp th hai, s dng s trong h c s 16
bn cn vit k t x trc s (v d \x20 hay \x4A).
Cc hng chui k t c th c vit trn nhiu dng nu mi dng c kt thc bng
mt du s ngc (\):

Updatesofts.com Ebooks Team
Trang 11
"string expressed in \
two lines"
Bn c th ni mt vi hng xu k t ngn cch bng mt hay vi du trng, k t tab,
xung dng hay bt k k t trng no khc.
"we form" "a unique" "string" "of characters"
nh ngha cc hng (#define)
Bn c th nh ngha cc hng vi tn m bn mun c th s dng thng xuyn m
khng mt ti nguyn cho cc bin bng cch s dng ch th #define. y l dng ca
n:
#define identifier value
V d:
#define PI 3.14159265
#define NEWLINE '\n'
#define WIDTH 100
chng nh ngha ba hng s mi. Sau khi khai bo bn c th s dng chng nh bt k
cc hng s no khc, v d
circle = 2 * PI * r;
cout << NEWLINE;
Trong thc t vic duy nht m trnh dch lm khi n tm thy mt ch th #define l
thay th cc tn hng ti bt k ch no chng xut hin (nh trong v d trc, PI,
NEWLINE hay WIDTH) bng gi tr m chng c nh ngha. V vy cc hng s #define
c coi l cc hng s macro
Ch th #define khng phi l mt lnh thc thi, n l ch th tin x l (preprocessor),
l l do trnh dch coi c dng l mt ch th v dng khng cn kt thc bng du
chm phy. Nu bn thm du chm phy vo cui dng, n s c coi l mt phn ca
gi tr nh ngha hng.
Khai bo cc hng (const)
Vi tin t const bn c th khai bo cc hng vi mt kiu xc nh nh l bn lm vi
mt bin
const int width = 100;
const to char tab = '\t';
const zip = 12440;

Updatesofts.com Ebooks Team
Trang 12
Trong trng hp kiu khng c ch r (nh trong v d cui) trnh dch s coi n l
kiu int

Updatesofts.com Ebooks Team
Trang 13
Cc ton t
Qua bi trc chng ta bit n s tn ti ca cc bin v cc hng. Trong C++,
thao tc vi chng ta s dng cc ton t, l cc t kho v cc du khng c trong
bng ch ci nhng li c trn hu ht cc bn phm trn th gii. Hiu bit v chng l
rt quan trng v y l mt trong nhng thnh phn c bn ca ngn ng C++.
Ton t gn (=).
Ton t gn dng gn mt gi tr no cho mt bin
a = 5;
gn gi tr nguyn 5 cho bin a. V tri bt buc phi l mt bin cn v phi
c th l bt k hng, bin hay kt qu ca mt biu thc.
Cn phi nhn mnh rng ton t gn lun c thc hin t tri sang phi
v khng bao gi o ngc
a = b;
gn gi tr ca bin a bng gi tr ang cha trong bin b. Ch rng
chng ta ch gn gi tr ca b cho a v s thay i ca b sau s
khng nh hng n gi tr ca a.
Mt thuc tnh ca ton t gn trong C++ gp phn gip n vt ln cc
ngn ng lp trnh khc l vic cho php v phi c th cha cc php gn
khc. V d:
a = 2 + (b = 5);
tng ng vi
b = 5;
a = 2 + b;
V vy biu thc sau cng hp l trong C++
a = b = c = 5;
gn gi tr 5 cho c ba bin a, b v c
Cc ton t s hc ( +, -, *, /, % )
Nm ton t s hc c h tr bi ngn ng l:

+ cng
- tr
* nhn
/ chia

Updatesofts.com Ebooks Team
Trang 14
% ly phn d (trong php chia)
Th t thc hin cc ton t ny cng ging nh chng c thc hin trong ton
hc. iu duy nht c v hi l i vi bn l php ly phn d, k hiu bng du
phn trm (%). y chnh l php ton ly phn d trong php chia hai s nguyn
vi nhau. V d, nu a = 11 % 3;, bin a s mang gi tr 2 v 11 = 3*3 +2.
Cc ton t gn phc hp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
Mt c tnh ca ngn ng C++ lm cho n ni ting l mt ngn ng sc
tch chnh l cc ton t gn phc hp cho php chnh sa gi tr ca mt
bin vi mt trong nhng ton t c bn sau:
value += increase; tng ng vi value = value + increase;
a -= 5; tng ng vi a = a - 5;
a /= b; tng ng vi a = a / b;
price *= units + 1; tng ng vi price = price *
(units + 1);
v tng t cho tt c cc ton t khc.
Tng v gim.
Mt v d khc ca vic tit kim khi vit m lnh l ton t tng (++) v
gim (--). Chng tng hoc gim gi tr cha trong mt bin i 1. Chng
tng ng vi +=1 hoc -=1. V vy, cc dng sau l tng ng:
a++;
a+=1;
a=a+1;
Mt tnh cht ca ton t ny l n c th l tin t hoc hu t, c ngha l c th
vit trc tn bin (++a) hoc sau (a++) v mc d trong hai biu thc rt n
gin n c cng ngha nhng trong cc thao tc khc khi m kt qu ca vic
tng hay gim c s dng trong mt biu thc th chng c th c mt khc
bit quan trng v ngha: Trong trng hp ton t c s dng nh l mt
tin t (++a) gi tr c tng trc khi biu thc c tnh v gi tr tng
c s dng trong biu thc; trong trng hp ngc li (a++) gi tr trong bin
a c tng sau khi tnh ton. Hy ch s khc bit :
V d 1 V d 2
B=3;
A=++B;
// A is 4, B is 4
B=3;
A=B++;
// A is 3, B is 4

Cc ton t quan h ( ==, !=, >, <, >=, <= )
c th so snh hai biu thc vi nhau chng ta c th s dng cc ton t
quan h. Theo chun ANSI-C++ th gi tr ca thao tc quan h ch c th l
gi tr logic - chng ch c th c gi tr true hoc false, tu theo biu thc
kt qu l ng hay sai.


Updatesofts.com Ebooks Team
Trang 15
Sau y l cc ton t quan h bn c th s dng trong C++
== Bng
!= Khc
> Ln hn
< Nh hn
> = Ln hn hoc bng
< = Nh hn hoc bng
V d:
(7 == 5) s tr gi tr false
(6 >= 6) s tr gi tr true
tt nhin thay v s dng cc s, chng ta c th s dng bt c biu
thc no. Cho a=2, b=3 v c=6
(a*b >= c) s tr gi tr true.
(b+4 < a*c) s tr gi tr false

Cn ch rng = (mt du bng) lf hon ton khc vi == (hai du bng).
Du u tin l mt ton t gn ( gn gi tr ca biu thc bn phi cho bin
bn tri) v du cn li (==) l mt ton t quan h nhm so snh xem hai
biu thc c bng nhau hay khng.

Trong nhiu trnh dch c trc chun ANSI-C++ cng nh trong ngn ng C,
cc ton t quan h khng tr v gi tr logic true hoc false m tr v gi tr
int vi 0 tng ng vi false cn gi tr khc 0 (thng l 1) th tng ng vi
true.
Cc ton t logic ( !, &&, || ).
Ton t ! tng ng vi ton t logic NOT, n ch c mt i s pha bn
phi v vic duy nht m n lm l i ngc gi tr ca i s t true sang
false hoc ngc li. V d:
!(5 == 5) tr v false v biu thc bn phi (5 == 5) c gi trtrue.
!(6 <= 4) tr v true v (6 <= 4)c gi tr false.
!true tr v false.
!false tr v true.
Ton t logic && v || c s dng khi tnh ton hai biu thc ly ra mt
kt qu duy nht. Chng tng ng vi cc ton t logic AND v OR. Kt qu
ca chng ph thuc vo mi quan h ca hai i s:
i s th nht
a
i s th hai
b
Kt qu
a && b
Kt qu
a || b
true true true true
true false false true
false true false true
false false false false
V d:

Updatesofts.com Ebooks Team
Trang 16
( (5 == 5) && (3 > 6) ) tr v false ( true && false ).
( (5 == 5) || (3 > 6)) tr v true ( true || false ).
Ton t iu kin ( ? ).
Ton t iu kin tnh ton mt biu thc v tr v mt gi tr khc tu thuc
vo biu thc l ng hay sai. Cu trc ca n nh sau:
condition ? result1 : result2
Nu condition l true th gi tr tr v s l result1, nu khng gi tr tr
v l result2.
7==5 ? 4 : 3 tr v 3 v 7 khng bng 5.
7==5+2 ? 4 : 3 tr v 4 v 7 bng 5+2.
5>3 ? a : b tr v a, v 5 ln hn 3.
a>b ? a : b tr v gi tr ln hn, a hoc b.

Cc ton t thao tc bit ( &, |, ^, ~, <<, >> ).
Cc ton t thao tc bit thay i cc bit biu din mt bin, c ngha l thay
i biu din nh phn ca chng
ton t asm M t
& AND Logical AND
| OR Logical OR
^ XOR Logical exclusive OR
~ NOT o ngc bit
<< SHL Dch bit sang tri
>> SHR Dch bit sang phi

Cc ton t chuyn i kiu
Cc ton t chuyn i kiu cho php bn chuyn i d liu t kiu ny sang
kiu khc. C vi cch lm vic ny trong C++, cch c bn nht c
tha k t ngn ng C l t trc biu thc cn chuyn i tn kiu d liu
c bc trong cp ngoc n (), v d:
int i;
float f = 3.14;
i = (int) f;
on m trn chuyn s thp phn 3.14 sang mt s nguyn (3). y, ton
t chuyn i kiu l (int). Mt cch khc lm iu ny trong C++ l s
dng cc constructors ( mt s sch thut ng ny c dch l cu t
nhng ti thy n c v khng xui tai lm) thay v dng cc ton t : t
trc biu thc cn chuyn i kiu tn kiu mi v bao bc biu thc gia
mt cp ngoc n.
i = int ( f );

Updatesofts.com Ebooks Team
Trang 17
C hai cch chuyn i kiu u hp l trong C++. Thm vo ANSI-C++
cn c nhng ton t chuyn i kiu mi c trng cho lp trnh hng i
tng.

sizeof()
Ton t ny c mt tham s, c th l mt kiu d liu hay l mt bin v
tr v kch c bng byte ca kiu hay i tng .
a = sizeof (char);
a s mang gi tr 1 v kiu char lun c kch c 1 byte trn mi h thng. Gi
tr tr v ca sizeof l mt hng s v vy n lun lun c tnh trc khi
chng trnh thc hin.

Cc ton t khc
Trong C++ cn c mt s cc ton t khc, nh cc ton t lin quan n con
tr hay lp trnh hng i tng. Chng s c ni n c th trong cc
phn tng ng.
Th t u tin ca cc ton t
Khi vit cc biu thc phc tp vi nhiu ton hng cc bn c th t hi ton hng
no c tnh trc, ton hng no c tnh sau. V d nh trong biu thc sau:
a = 5 + 7 % 2
c th c hai cch hiu sau:
a = 5 + (7 % 2) vi kt qu l 6, hoc
a = (5 + 7) % 2 vi kt qu l 0
Cu tr li ng l biu thc u tin. V nguyn nhn ni trn, ngn ng C++
thit lp mt th t u tin gia cc ton t, khng ch ring cc ton t s hc m
tt c cc ton t c th xut hin trong C++. Th t u tin ca chng c lit k
trong bng sau theo th t t cao xung thp.

Th
t
Ton t M t Associativity
1 :: scope Tri
2 () [ ] -> . sizeof Tri
++ -- tng/gim
~ o ngc bit
! NOT
& * Ton t con tr
(type) Chuyn i kiu
3
+ - Dng hoc m
Phi
4 * / % Ton t s hc Tri

Updatesofts.com Ebooks Team
Trang 18
5 + - Ton t s hc Tri
6 << >> Dch bit Tri
7 < <= > >= Ton t quan h Tri
8 == != Ton t quan h Tri
9 & ^ |
Ton t thao tc
bit
Tri
10 && || Ton t logic Tri
11 ?: Ton t iu kin Phi
12
= += -= *= /= %=
>>= <<= &= ^= |=
Ton t gn Phi
13 , Du phy Tri
Associativity nh ngha trong trng hp c mt vi ton t c cng th t u tin th ci
no s c tnh trc, ton t pha xa nht bn phi hay l xa nht bn tri.
Nu bn mun vit mt biu thc phc tp m li khng chc lm v th t u tin ca
cc ton t th nn s dng cc ngoc n. Cc bn nn thc hin iu ny v n s gip
chng trnh d c hn.

Updatesofts.com Ebooks Team
Trang 19
Giao tip vi console.
Console l giao din c bn ca my tnh. Bn phm l thit b vo c bn cn mn hnh
l thit b ra c bn.
Trong th vin iostream ca C++, cc thao tc vo ra c bn ca mt chng trnh c
h tr bi hai dng d liu : cin nhp d liu v cout xut. Thm vo , cn c
cerr v clog l hai dng d liu dng hin th cc thng bo li trn thit b ra chun
(thng l mn hnh) hoc ra mt file. Thng thng cout c gn vi mn hnh cn
cin c gn vi bn phm.
S dng hai dng d liu ny bn s c th giao tip vi ngi s dng v bn c th hin
th cc thng bo ln mn hnh cng nh nhn d liu t bn phm.
Xut d liu (cout)
Dng cout c s dng vi ton t qu ti << (overloaded - bn s hiu r hn v
thut ng ny trong phn lp trnh hng i tng)
cout << "Output sentence"; // Hin th Output sentence ln mn hnh
cout << 120; // Hin th s 120 ln mn hnh
cout << x; // Hin th ni dung bin x ln mn hnh
Ton t << c gi l ton t chn v n chn d liu i sau n vo dng d liu ng
trc. Trong v d trn n chn chui "Output sentence", hng s 120 v bin x vo
dng d liu ra cout.Ch rng dng u tin chng ta s dng du ngoc kp v l
mt chui k t. Khi chng ta mun s dng cc hng xu k t ta phi t chng trong
cp du ngoc kp chng c th c phn bit vi cc bin. V d, hai lnh sau y l
hon ton khc nhau:
cout << "Hello"; // Hin th Hello ln mn hnh
cout << Hello; // Hin th ni dung ca bin Hello ln mn hnh
Ton t chn (<<) c th c s dng nhiu ln trong mt cu lnh:
cout << "Hello, " << "I am " << "a C++ sentence";
Cu lnh trn s in thng bo Hello, I am a C++ sentence ln mn hnh. S tin li
ca vic s dng lp li ton t chn (<<) th hin r khi chng ta mun hin th nhiu
bin v hng hn l ch mt bin:
cout << "Hello, I am " << age << " years old and my email address is " << email_add;
Cn phi nhn mnh rng cout khng nhy xung dng sau khi xut d liu, v vy hai
cu lnh sau :
cout << "This is a sentence.";
cout << "This is another sentence.";
s c hin th trn mn hnh:
This is a sentence.This is another sentence.
Bi vy khi mun xung dng chng ta phi s dng k t xung dng, trong C++ l \n:

You might also like