CÊu tróc d÷ liÖu mÉu víi C++
Lêi c¶m ¬n
Tríc tiªn, t«i xin bµy tá lßng biÕt ¬n s©u s¾c tíi thÇy gi¸o
híng dÉn TS §oµn V¨n Ban, phßng CSDL< ViÖn C«ng NghÖ
Th«ng Tin thuéc trung t©m Khoa Häc Tù Nhiªn vµ C«ng NghÖ
Quèc Gia ®· tËn t×nh gióp ®ì t«i hoµn thµnh bµi luËn v¨n nµy.
T«i xin ch©n thµnh c¶m ¬n c¸c thÇy, c« gi¸o khoa C«ng NghÖ
Th«ng Tin trêng §HDL §«ng §« ®· gi¶ng d¹y vµ gióp ®ì em
trong qu¸ tr×nh häc tËp ë trêng.
Cuèi cïng, xin ch©n thµnh c¶m ¬n nh÷ng ngêi th©n trong
gia ®×nh vµ b¹n bÌ ®· gióp ®ì, ®éng viªn trong qu¸ tr×nh häc tËp.
Hµ néi th¸ng 6 n¨m 2000
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
Môc lôc
Lêi c¶m ¬n
PhÇn A
Ch¬ng I. Ng«n ng÷ C++ vµ lËp tr×nh híng ®èi tîng
I.1. LËp tr×nh híng ®èi tîng lµ g×?.............................................................4
I.2. C¸c u ®iÓm cña lËp tr×nh híng ®èi tîng............................................5
I.3. §èi tîng ...............................................................................................6
I.4. C¸c líp ®èi tîng....................................................................................7
I.5. Trõu tîng ho¸ d÷ liÖu vµ bao gãi th«ng tin...........................................8
I.6. Thõa kÕ....................................................................................................8
I.7. T¬ng øng béi.........................................................................................9
I.8. TruyÒn th«ng b¸o..................................................................................10
I.9. Nh÷ng øng dông cña lËp tr×nh híng ®èi tîng....................................11
Ch¬ng II. ThiÕt kÕ vµ cµi ®Æt c¸c líp ®èi tîng
II.1. §Þnh nghÜa líp.....................................................................................13
II.1.1. Khai b¸o líp tªn ®èi tîng................................................................13
II.1.2. T¹o lËp c¸c líp ®èi tîng..................................................................14
II.1.3. C¸c thµnh phÇn d÷ liÖu......................................................................15
II.2. TÝnh t¬ng øng béi...............................................................................16
II.2.1. Hµm t¶i béi.......................................................................................17
II.2.2. ChuyÓn ®æi kiÓu................................................................................21
II.3. KÕ thõa vµ sù më réng c¸c líp............................................................22
II.3.1. KÕ thõa ®¬n.......................................................................................23
II.3.2. KÕ thõa ®a møc.................................................................................27
II.3.3. KÕ thõa ph©n cÊp...............................................................................28
II.3.4. KÕ thõa béi........................................................................................28
II.3.5. KÕ thõa kÐp.......................................................................................29
II.3.6. C¸c líp c¬ së ¶o................................................................................29
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
II.3.7. CÊu tö trong c¸c líp dÉn xuÊt...........................................................30
II.3.8. Hµm ¶o.............................................................................................32
Ch¬ng III. Hµm vµ líp mÉu
III.1. Hµm mÉu............................................................................................34
III.1.1. §Þnh nghÜa.......................................................................................34
III.1.2. Hµm mÉu cã nhiÒu tham sè h×nh thøc.............................................35
III.1.3. Hµm mÉu cã nhiÒu tham sè kh¸c nhau...........................................36
III.2. Líp mÉu.............................................................................................38
III.2.1 §Þnh nghÜa.......................................................................................38
III.2.2. Líp mÉu cã tham sè ......................................................................39
III.3. KÕt luËn ............................................................................................39
Ch¬ng IV CÊu tróc d÷ liÖu vµ c¸c líp mÉu
IV. CÊu tróc d÷ liÖu....................................................................................40
IV.1.1. Líp chøa.........................................................................................41
IV.1.2. Líp chøa thÇn ¶o............................................................................41
IV.2.1. Ng¨n xÕp........................................................................................42
IV.2.2. Lu tr÷ ng¨n xÕp b»ng m¶ng.........................................................42
IV.2.3. X©y dùng líp ng¨n xÕp mÉu............................................................43
IV.3.1. Hµm ®îi...........................................................................................44
IV.3.2. X©y dùng líp hµm ®îi mÉu.............................................................45
IV.4. Hµng quay trßn...................................................................................47
IV.5. Danh s¸ch liªn kÕt..............................................................................48
IV.6 Danh s¸ch liªn kÕt ®¬n........................................................................48
IV.7 Danh s¸ch liªn kÕt ®«i.........................................................................56
IV.8. C©y nhÞ ph©n.......................................................................................64
IV.9. NhËn xÐt.............................................................................................74
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
PhÇn B
I. Ch¬ng tr×nh qu¶n lý sinh viªn................................................................76
II. Ch¬ng tr×nh thèng kª tõ tiÕng ViÖt.......................................................85
KÕt luËn.......................................................................................................92
Tµi liÖu tham kh¶o.......................................................................................93
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
Ch¬ng I
Ng«n ng÷ C++ vµ lËp tr×nh híng ®èi tîng
I.1. LËp tr×nh híng ®èi tîng lµ g×?
LËp tr×nh híng ®èi tîng dùa trªn nÒn t¶ng lµ c¸c ®èi tîng. §èi
tîng ®îc x©y dùng trªn c¬ së g¾n cÊu tróc d÷ liÖu víi c¸c phÐp to¸n sÏ
thÓ ®îc ®óng c¸ch mµ chóng ta suy nghÜ, bao qu¸t vÒ thÕ giíi thùc. [3]
LËp tr×nh híng ®èi tîng cho phÐp chóng ta kÕt hîp nh÷ng tri thøc
bao qu¸t vÒ c¸c qu¸ tr×nh víi nh÷ng kh¸i niÖm trõu tîng ®îc sö dông
trong m¸y tÝnh .
LËp tr×nh híng ®èi tîng lµ ph¬ng ph¸p lËp tr×nh lÊy ®èi tîng lµm
nÒn t¶ng ®Ó x©y dùng thuËt gi¶i, x©y dùng ch¬ng tr×nh, lµ c¸ch tiÕp cËn ®Ó
ph©n chia ch¬ng tr×nh thµnh c¸c ®¬n thÓ (modul) b»ng c¸ch t¹o ra c¸c
vïng bé nhí cho c¶ d÷ liÖu lÉn hµm vµ chóng sÏ ®îc sö dông nh c¸c mÉu
®Ó t¹o ra b¶n sao tõng ®¬n thÓ khi cÇn thiÕt. §èi tîng ë ®©y ®îc xem nh
lµ vïng ph©n chia chia bé nhí trong m¸y tÝnh ®Ó lu tr÷ d÷ liÖu vµ tËp c¸c
hµm t¸c ®éng trªn d÷ liÖu g¾n víi chóng.
Kh¸i niÖm “Híng ®èi tîng” ®îc x©y dùng trªn nÒn t¶ng cña kh¸i
niÖm “LËp tr×nh cã cÊu tróc“ vµ ”Sù trõu tîng ho¸ d÷ liÖu” sù thay ®æi c¨n
b¶n lµ ë chç mét ch¬ng tr×nh híng ®èi tîng ®îc thiÕt kÕ xoay quanh
c¸c d÷ liÖu mµ ta lµm viÖc trªn nã, h¬n lµ theo b¶n th©n chøc n¨ng cña
ch¬ng tr×nh.
LËp tr×nh híng ®èi tîng ®Æt träng t©m vµo ®èi tîng, yÕu tè quan
träng trong qu¸ tr×nh ph¸t triÓn ch¬ng tr×nh vµ nã kh«ng cho phÐp d÷ liÖu
chuyÓn ®éng tù do trong hÖ thèng. D÷ liÖu ®îc g¾n chÆt víi tõng hµm
thµnh c¸c vïng riªng mµ c¸c hµm ®ã t¸c ®éng lªn vµ nã ®îc b¶o vÖ cÊm
c¸c hµm ngo¹i lai truy nhËp tuú tiÖn. Tuy nhiªn c¸c ®èi tîng cã thÓ trao
®æi th«ng tin víi nhau th«ng qua viÖc trao ®æi th«ng b¸o.[5]
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
Tãm l¹i, so s¸nh lËp tr×nh cÊu tróc lÊy ch¬ng tr×nh con lµm nÒn
t¶ng:
Ch¬ng tr×nh = CÊu tróc d÷ liÖu + Gi¶i ThuËt
Trong lËp tr×nh híng ®èi tîng chóng ta cã :
§èi tîng =D÷ LiÖu + Hµnh vi cña d÷ liÖu
LËp tr×nh híng ®èi tîng cã nh÷ng ®Æc tÝnh chñ yÕu sau:
TËp trung vµo d÷ liÖu thay cho c¸c hµm.
Ch¬ng tr×nh ®îc chia thµnh tËp c¸c líp ®èi tîng.
CÊu tróc d÷ liÖu ®îc thiÕt kÕ sao cho ®Æc t¶ c¸c ®èi tîng.
C¸c hµm ®îc x¸c ®Þnh trªn c¸c vïng d÷ kiÖu cña ®èi tîng ®îc
g¾n víi nhau trªn cÊu tróc cña d÷ liÖu ®ã.
D÷ liÖu ®îc bao bäc, che dÊu vµ kh«ng cho phÐp c¸c hµm ngo¹i
lai truy nhËp tù do.
C¸c ®èi tîng trao ®æi th«ng tin víi nhau qua c¸c hµm.
D÷ liÖu vµ c¸c hµm míi cã thÓ dÔ dµng bæ xung vµo ®èi tîng nµo
®ã khi cÇn thiÕt.
Ch¬ng tr×nh ®îc thiÕt kÕ theo c¸ch tiÕp cËn bottom-up.
I.2. C¸c u ®iÓm cña lËp tr×nh híng ®èi tîng
Th«ng qua nguyªn lý thõa kÕ, chóng ta cã thÓ lo¹i bá ®îc nh÷ng
®o¹n ch¬ng tr×nh lÆp l¹i, d thõa trong qu¸ tr×nh m« t¶ c¸c líp vµ
kh¶ n¨ng sö dông c¸c líp ®· ®îc x©y dùng.
Ch¬ng tr×nh ®îc x©y dùng tõ c¸c ®¬n thÓ (module) trao ®æi víi
nhau nªn viÖc thiÕt kÕ vµ lËp tr×nh sÏ ®îc thùc hiÖn theo quy tr×nh
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
nhÊt ®Þnh chø kh«ng ph¶i dùa vµo kinh nghiÖm vµ kü thuËt nh tríc.
§iÒu nµy ®¶m b¶o rót ng¾n ®îc thêi gian x©y dùng hÖ thèng vµ t¨ng
n¨ng xuÊt lao ®éng.
Nguyªn lý che dÊu th«ng tin gióp ngêi lËp tr×nh t¹o ra ®îc nh÷ng
ch¬ng tr×nh an toµn kh«ng bÞ thay ®æi bëi nh÷ng ch¬ng tr×nh kh¸c.
Cã thÓ x©y dùng ®îc c¸c ¸nh x¹ ®èi tîng cña bµi to¸n vµo ®èi
tîng cña ch¬ng tr×nh.
C¸ch tiÕp cËn thiÕt kÕ ®Æt träng t©m vµo d÷ liÖu gióp ta x©y dùng
®îc m« h×nh chi tiÕt vµ gÇn víi d¹ng cµi ®Æt h¬n.
Nh÷ng hÖ thèng híng ®èi tîng dÔ më réng, n©ng cÊp thµnh nh÷ng
hÖ thèng lín h¬n.
Kü thuËt truyÒn th«ng b¸o trong viÖc tao trao ®æi th«ng tin gi÷a c¸c
®èi tîng gióp cho viÖc m« t¶ giao diÖn víi c¸c hÖ thèng bªn ngoµi
®¬n gi¶n h¬n.
Cã thÓ qu¶n lý ®é phøc t¹p cña nh÷ng s¶n phÈm phÇn mÒm.
I.3. §èi tîng
§èi tîng lµ thùc thÓ ®îc x¸c ®Þnh trong thêi h¹n hÖ thèng híng
®èi tîng ho¹t ®éng. Nh vËy ®èi tîng lµ con ngêi, sù vËt, thiÕt bÞ, b¶ng
d÷ liÖu cÇn xö lý trong ch¬ng tr×nh. Mçi ®èi tîng gåm cã: tËp c¸c thuéc
tÝnh (attribute) vµ tËp c¸c hµm (function) ®Ó xö lý c¸c thuéc tÝnh ®ã.[5]
Mét ®èi tîng cã thÓ ®îc minh ho¹ nh sau :
§èi Tîng
Thuéc
TÝnh
Hµm
H×nh 1. CÊu tróc tæng qu¸t cña mét ®èi tîng.
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
Ch¼ng h¹n chóng ta xÐt ®èi tîng h×nh ch÷ nhËt bao gåm c¸c thuéc tÝnh
(x1,y1) to¹ ®é gãc trªn bªn tr¸i, d, r lµ chiÒu dµi chiÒu réng cña h×nh ch÷
nhËt. C¸c hµm: nhËp sè liÖu cho h×nh ch÷ nhËt, hµm tÝnh diÖn tÝch, chu vi vµ
hµm hiÓn thÞ. Nh vËy ®èi tîng h×nh ch÷ nhËt cã thÓ ®îc m« t¶ nh sau:
§èi tîng:
h×nh ch÷ nhËt
Thuéc tÝnh:
x1, y1, d, r
Ph¬ng thøc:
NhËp sè liÖu
DiÖn tÝch
Chu vi
HiÓn thÞ
H×nh 2. M« t¶ ®èi tîng h×nh ch÷ nhËt.
I.4. C¸c líp ®èi tîng
Mét tËp d÷ liÖu vµ c¸c hµm cña mét tËp ®èi tîng cã thÓ ®îc xem
nh mét kiÓu d÷ liÖu ®îc ®Þnh nghÜa bëi ngêi sö dông. KiÓu d÷ liÖu ë ®©y
®îc gäi lµ líp (class), ®ã lµ mét tËp c¸c thuéc tÝnh vµ c¸c hµm m« t¶ thÕ
giíi thùc, mét ®èi tîng lµ thÓ hiÖn cña mét líp. Líp lµ kh¸i niÖm trung
t©m cña lËp tr×nh híng ®èi tîng, nã lµ sù më réng cÊu tróc (struct) cña C
vµ b¶n ghi (record) cña Pascal. Trong lËp tr×nh híng ®èi tîng, líp hÇu
nh ®ång nhÊt víi kiÓu d÷ liÖu trõu tîng. Líp lµ kh¸i niÖm tÜnh, cã thÓ
nhËn biÕt ngay tõ v¨n b¶n ch¬ng tr×nh. Ngîc l¹i ®èi tîng lµ kh¸i niÖm
®éng, nã ®îc x¸c ®Þnh trong bé nhí cña m¸y tÝnh n¬i ®èi tîng chiÕm mét
vïng cña bé nhí lóc thùc hiÖn ch¬ng tr×nh. §èi tîng ®îc t¹o ra ®Ó xö lý
th«ng tin, thùc hiÖn nhiÖm vô ®îc thiÕt kÕ vµ sau ®ã bÞ huû bá khi ®èi
tîng ®ã hÕt vai trß. Khi mét líp ®îc ®Þnh nghÜa, th× nã cã thÓ t¹o ra sè
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
lîng c¸c ®èi tîng tuú ý cña líp ®ã. Nh vËy líp lµ tËp hîp c¸c ®èi tîng
cïng kiÓu. Sù kh¸c biÖt gi÷a líp vµ ®èi tîng còng gièng nh sù kh¸c biÖt
gi÷a tËp hîp c¸c phÇn tö vµ mét phÇn tö trong tËp hîp.[5]
I.5. Trõu tîng ho¸ d÷ liÖu vµ bao gãi th«ng tin
ViÖc ®ãng gãi d÷ liÖu vµ c¸c hµm vµo mét ®¬n vÞ cÊu tróc ®îc xem
nh mét nguyªn t¾c (che dÊu) th«ng tin, d÷ ®îc tæ chøc sao cho thÕ giíi
bªn ngoµi kh«ng truy nhËp ®îc vµo mµ chØ cho phÐp c¸c hµm trong cïng
líp hoÆc trong nh÷ng líp cã quan hÖ thõa víi nhau ®îc quÒn truy nhËp.
ChÝnh c¸c hµm thµnh phÇn cña líp sÏ ®ãng vai trß nh lµ giao diÖn gi÷a d÷
liÖu cña ®èi tîng vµ phÇn cßn l¹i cña ch¬ng tr×nh. Nguyªn t¾c bao gãi d÷
liÖu ®Ó ng¨n cÊm sù truy nhËp trùc tiÕp trong lËp tr×nh ®îc gäi lµ che dÊu
th«ng tin.
Trõu tîng ho¸ lµ c¸ch biÓu diÔn nh÷ng ®Æc tÝnh chÝnh vµ bá qua
nh÷ng chi tiÕt vôn vÆt hoÆc nh÷ng gi¶i thÝch. §Ó x©y dùng c¸c líp chóng ta
ph¶i sö dông kh¸i niÖm trõu tîng ho¸. Trong lËp tr×nh híng ®èi tîng líp
®îc sö dông nh d÷ liÖu trõu tîng. VÝ dô nh chóng ta cã thÓ ®Þnh nghÜa
mét líp lµ danh s¸ch c¸c thuéc tÝnh trõu tîng nh lµ kÝch thíc, h×nh d¸ng
mÇu vµ c¸c hµm x¸c ®Þnh trªn c¸c thuéc tÝnh nµy ®Ó m« t¶ c¸c ®èi tîng
trong kh«ng gian h×nh häc.
I.6. Thõa KÕ
Thõa kÕ lµ qu¸ tr×nh trong ®ã c¸c ®èi tîng cña líp nµy ®îc quyÒn
sö dông mét sè tÝnh chÊt cña c¸c ®èi tîng cña c¸c líp kh¸c.
Nguyªn lý thõa kÕ hç trî cho viÖc t¹o ra cÊu tróc ph©n cÊp c¸c líp.
Nã ®îc thùc hiÖn dùa trªn nguyªn lý tæng qu¸t ho¸ hoÆc chi tiÕt ho¸ c¸c
®Æc tÝnh cña c¸c ®èi tîng trong c¸c líp.
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
Trong lËp tr×nh híng ®èi tîng, kh¸i niÖm thõa kÕ kÐo theo ý tëng
sö dông l¹i. NghÜa lµ mét líp ®· ®îc x©y dùng (líp cha hay líp c¬ së) cña
chóng cã thÓ bæ sung thªm c¸c tÝnh chÊt míi ®Ó t¹o c¸c líp míi (líp con
hay líp dÉn xuÊt) m« t¶ chi tiÕt h¬n vÒ mét nhãm ®èi tîng cô thÓ (theo
nguyªn lý chi tiÕt ho¸) hoÆc tõ mét nhãm líp cã sè ®Æc tÝnh gièng nhau gép
chung c¸c ®Æc tÝnh ®ã l¹i ®Ó t¹o ra mét líp míi, ®îc gäi lµ líp trõu tîng
(nguyªn lý tæng qu¸t ho¸).
Kh¸i niÖm kÕ thõa ®îc hiÓu nh c¬ chÕ sao chÐp ¶o kh«ng ®¬n ®iÖu.
Trong thùc tÕ, mäi viÖc x¶y ra tùa nh nh÷ng líp c¬ së ®Òu ®îc sao vµo
trong líp dÉn xuÊt mÆc dï ®iÒu nµy kh«ng ®îc cµi ®Æt têng minh (gäi lµ
sao chÐp ¶o) vµ viÖc sao chÐp chØ ®îc x¸c ®Þnh trong líp c¬ së (sao chÐp
kh«ng ®¬n ®iÖu).
Mét líp cã thÓ kÕ thõa c¸c tÝnh chÊt cña mét hay nhiÒu líp c¬ së ë
c¸c møc kh¸c nhau, do ®ã cã n¨m d¹ng kÕ thõa ®îc sö dông trong lËp
tr×nh híng ®èi tîng lµ: kÕ thõa ®¬n, kÕ thõa béi, kÕ thõa ph©n cÊp, kÕ
thõa ®a møc vµ kÕ thõa phøc hîp (ch¬ng sau sÏ nãi râ vÒ c¸c d¹ng kÕ thõa
nµy).[3]
I.7. T¬ng øng béi
T¬ng øng béi lµ mét kh¸i niÖm cã kh¶ n¨ng nh c¸c phÐp to¸n cã
thÓ ®îc thùc hiÖn ë nhiÒu d¹ng kh¸c nhau. Hµnh vi cña c¸c phÐp to¸n
t¬ng øng béi phô thuéc vµo kiÓu d÷ liÖu mµ nã sö dông ®Ó xö lý. T¬ng
øng béi ®ãng vai trß quan träng trong viÖc t¹o ra c¸c ®èi tîng cã cÊu tróc
bªn trong kh¸c nhau nhng cã kh¶ n¨ng dïng chung mét giao diÖn bªn
ngoµi (nh tªn gäi). §iÒu nµy cã nghÜa lµ mét líp c¸c phÐp to¸n ®îc ®Þnh
nghÜa theo nh÷ng thuËt to¸n kh¸c nhau, nhng cã kh¶ n¨ng sö dông theo
cïng mét c¸ch gièng nhau.T¬ng øng béi lµ sù më réng kh¸i niÖm sö dông
l¹i trong nguyªn lý kÕ thõa. Liªn kÕt ®éng lµ d¹ng liªn kÕt c¸c hµm, thñ tôc
khi ch¬ng tr×nh thùc hiÖn c¸c lêi gäi tíi c¸c hµm, thñ tôc ®ã. Nh vËy,
trong liªn kÕt ®éng néi dung cña ®o¹n ch¬ng tr×nh øng víi thñ tôc, hµm
cho ®Õn khi thùc hiÖn c¸c lêi gäi tíi c¸c thñ tôc vµ hµm ®ã. Nã cho phÐp
chóng ta can thiÖp vµo sù ho¹t ®éng cña c¸c thùc thÓ mµ kh«ng cÇn biªn
dÞch l¹i toµn bé ch¬ng tr×nh, chóng ta cã thÓ truyÒn vµ nhËn th«ng tin tõ
c¸c ®èi tîng míi nµy gièng nh c¸c ®èi tîng ®· cã. Liªn kÕt ®éng liªn
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
quan chÆt chÏ tíi t¬ng øng béi vµ kÕ thõa, ®«i khi liªn kÕt ®éng cßn gäi lµ
liªn kÕt trÔ hay liªn kÕt vµo lóc ch¹y (v× c¸c ph¬ng thøc chØ ®îc gäi vµo
lóc ch¬ng tr×nh biªn dÞch ch¬ng tr×nh biªn dÞch ra ng«n ng÷ m¸y).[3]
Ch¼ng h¹n nh hµm VE() trong h×nh 3, theo nguyªn lý kÕ thõa th×
mäi ®èi tîng ®Òu cã thÓ sö dông hµm nµy ®Ó vÏ theo yªu cÇu. Tuy nhiªn,
thuËt to¸n thùc hiÖn hµm VE() lµ duy nhÊt ®èi víi tõng ®èi tîng
H×nh_TRßn, §a_Gi¸c, §¬ng_th vµ v× vËy hµm VE() sÏ ®îc ®Þnh
nghÜa l¹i khi c¸c ®èi tîng t¬ng øng ®îc x¸c ®Þnh.
H×nh Häc
VE()
HINH_TRON
N
VE(TRON)
§A_GIAC
§¦¥NG_TH
VE(§A_GIAC)
VE(§¦¥NG_TH)
H×nh 3. T¬ng øng béi cña hµm VE().
I.8. TruyÒn th«ng b¸o
C¸c ®èi tîng göi vµ nhËn th«ng tin víi nhau gièng nh con ngêi
trao ®æi th«ng tin víi nhau. ChÝnh nguyªn lý trao ®æi th«ng tin víi nhau
b»ng c¸ch truyÒn th«ng b¸o cho phÐp chóng ta dÔ dµng x©y dùng ®îc hÖ
thèng m« pháng gÇn nh÷ng hÖ thèng trong thÕ giíi thùc. TruyÒn th«ng b¸o
cho mét ®èi tîng tøc lµ b¸o cho nã ph¶i thùc hiÖn mét viÖc g× ®ã. C¸ch
øng xö c¶ ®èi tîng sÏ ®îc m« t¶ ë trong líp th«ng qua c¸c hµm (hay cßn
®îc gäi lµ líp dÞch vô). Th«ng b¸o truyÒn ®i ph¶i chØ ra ®îc hµm cÇn thùc
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
hiÖn trong ®èi tîng nhËn th«ng b¸o. H¬n thÕ n÷a th«ng b¸o truyÒn ®i ph¶i
x¸c ®Þnh tªn ®èi tîng, tªn hµm vµ th«ng tin truyÒn ®i.
VÝ dô: Líp CONG_NHAN cã thÓ lµ ®èi tîng cô thÓ ®îc x¸c ®Þnh
bëi HO_TEN nhËn ®îc th«ng b¸o cÇn TINH_LUONG ®· ®îc x¸c ®Þnh
trong líp CONG_NHAN. Th«ng b¸o ®ã sÏ ®îc xö lý nh sau:
CONG_NHAN.TINH_LUONG(HO_TEN)
®èi tîng
th«ng b¸o
th«ng tin
Mçi ®èi tîng chØ tån t¹i trong mét thêi gian nhÊt ®Þnh. §èi tîng
t¹o ra khi nã ®îc khai b¸o vµ sÏ bÞ huû bá khi ch¬ng tr×nh ra khái miÒn
x¸c ®Þnh cña ®èi tîng ®ã. Sù trao ®æi th«ng tin chØ cã thÓ thùc hiÖn trong
thêi gian ®èi tîng tån t¹i.
I.9. Nh÷ng øng dông cña lËp tr×nh híng ®èi tîng
LËp tr×nh híng ®èi tîng lµ mét trong nh÷ng thuËt ng÷ ®îc nh¾c
®Õn nhiÒu nhÊt trong c«ng nghÖ phÇn mÒm vµ nã ®îc øng dông ®Ó ph¸t
triÓn phÇn mÒm vµ nhiÒu lÜnh vùc kh¸c nhau. Trong sè ®ã cã øng dông
quan träng vµ næi tiÕng nhÊt hiÖn nay lµ lÜnh vùc thiÕt kÕ giao diÖn víi
ngêi sö dông. VÝ dô nh Windows, hµng tr¨m hÖ thèng víi giao diÖn
Windows ®· dîc ph¸t triÓn dùa trªn kü thuËt lËp tr×nh híng ®èi tîng.
Nh÷ng hÖ th«ng tin doanh nghiÖp trong thùc tÕ rÊt phøc t¹p, chøa nhiÒu ®èi
tîng, c¸c thuéc tÝnh vµ hµm. §Ó gi¶i quyÕt nh÷ng hÖ thèng phøc hîp nh
thÕ th× lËp tr×nh híng ®èi tîng l¹i tá ra kh¸ hiÖu qu¶. Tãm l¹i nh÷ng lÜnh
vùc øng dông cña kü thuËt lËp tr×nh híng ®èi tîng bao gåm:
Nh÷ng hÖ th«ng tin lµm viÖc theo thêi gian thùc.
Trong lÜnh vùc m« h×nh ho¸ hoÆc m« pháng qu¸ tr×nh.
C¸c c¬ së d÷ liÖu híng ®èi tîng.
HÖ siªu v¨n b¶n vµ ®a ph¬ng tiÖn.
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
LÜnh vùc trÝ tuÖ nh©n t¹o vµ c¸c hÖ chuyªn gia.
LËp tr×nh song song vµ c¸c m¹ng n¬_ron.
Nh÷ng hÖ tù ®éng ho¸ v¨n phßng vµ trî gióp quyÕt ®Þnh.
Nh÷ng hÖ CAD/CAM.
Víi nhiÒu ®Æc tÝnh cña lËp tr×nh híng ®èi tîng nãi riªng, c¶
ph¬ng ph¸p ph¸t triÓn híng ®èi tîng nãi chung, chóng ta hy väng nÒn
c«ng nghiÖp phÇn mÒm sÏ c¶i tiÕn kh«ng nh÷ng vÒ chÊt lîng mµ cßn gia
t¨ng nhanh vÒ sè lîng trong t¬ng lai. Kü nghÖ híng ®èi tîng sÏ lµ thay
®æi c¸ch suy nghÜ vµ c¸ch thùc hiÖn qu¸ t×nh ph©n tÝch, thiÕt kÕ vµ cµi ®Æt
c¸c hÖ thèng, gãp phÇn gi¶i quyÕt nh÷ng vÊn ®Ò tån t¹i trong c«ng nghÖ
phÇn mÒm.
C++ lµ mét c«ng cô lËp tr×nh híng ®èi tîng
C++ lµ c«ng cô lËp tr×nh híng ®èi tîng. Ban ®Çu ®îc gäi lµ "C with
class" (C víi c¸c líp) sau ®ã C++ ®îc ph¸t triÓn vµo nh÷ng n¨m ®Çu thËp kØ
80 ë AT&T Bell Laboratories. Nã ®îc ph¸t triÓn trªn nÒn ng«n ng÷ C.
C++ lµ mét tËp më réng cña C, v× thÕ hÇu hÕt c¸c tÝnh chÊt cña C vÉn ®îc
sö dông trong C++. §iÒu nµy cã nghÜa lµ hÇu nh toµn bé c¸c ch¬ng tr×nh
®îc viÕt b»ng C th× còng lµ ch¬ng tr×nh cña C++ . Tuy nhiªn còng cã mét
sè kh¸c biÖt lµm cho ch¬ng tr×nh C kh«ng thùc ®îc díi ch¬ng tr×nh
C++.
Ba kh¸i niÖm quan träng cña C++ ®îc bæ xung vµo C lµ: líp, hµm t¶i
béi vµ to¸n tö t¶i béi. Nh÷ng kh¸i niÖm cho phÐp chóng ta t¹o ra nh÷ng
kiÓu d÷ liÖu trõu tîng, kÕ thõa nhiÒu tÝnh chÊt cña nh÷ng kiÓu d÷ liÖu ®·
x©y dùng vµ hç trî cho viÖc sö dông c¬ chÕ t¬ng øng béi cho C++ trë thµnh
ng«n ng÷ híng ®èi tîng thùc sù. C¸c ®Æc tÝnh cña C++ cho phÐp ngêi lËp
tr×nh dÔ dµng x©y dùng ®îc c¸c ch¬ng tr×nh lín, cã tÝnh më, dÔ thÝch
nghi, c«ng viÖc b¶o tr× Ýt tèn kÐm h¬n. C++ lµ c«ng cô thÝch øng cho vÖc x©y
dùng c¸c ch¬ng tr×nh lín nh c¸c hÖ so¹n th¶o ch¬ng, tr×nh dÞch, c¸c hÖ
c¬ së d÷ liÖu, nh÷ng hÖ thèng truyÒn tin vµ nhiÒu øng dông phøc t¹p kh¸c.
C++ hç trî cho viÖc t¹o ra cÊu tróc ph©n cÊp c¸c ®èi tîng gióp chóng
ta cã thÓ x©y dùng nh÷ng th viÖn c¸c ®èi tîng ®Ó cho nhiÒu ngêi lËp sö
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
dông ®îc. Do C++ lµ ng«n ng÷ lËp tr×nh híng ®èi tîng nªn tÊt nhiªn nã
sÏ cã nh÷ng g× mµ "híng ®èi tîng" cã.
Ch¦¬ng ii
ThiÕt kÕ vµ cµi ®Æt c¸c líp ®èi tîng trong c++
II.1. §Þnh nghÜa líp
II.1.1. Khai b¸o líp tªn ®èi tîng
Khai b¸o líp lµ m« t¶ kiÓu vµ nhiÒu miÒn x¸c ®Þnh c¸c thµnh phÇn
cña líp, khai b¸o líp còng nh khai b¸o c¸c kiÓu d÷ liÖu quen thuéc kh¸c,
nã cã d¹ng nh sau:
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
class class_name
{
private: // vïng riªng (mÆc ®Þnh)
... // khai b¸o d÷ liÖu vµ c¸c hµm
public:// vïng c«ng céng
... // khai b¸o d÷ liÖu vµ c¸c hµm
};
// kÕt thóc b»ng dÊu ";"
Tõ kho¸ class ®Þnh nghÜa mét kiÓu d÷ liÖu trõu tîng cã tªn gäi lµ
class_name. Trong néi dung líp cã c¸c biÕn vµ hµm, c¸c biÕn vµ hµm ®îc
tæ chøc thµnh hai nhãm: dïng chung (public) vµ së h÷u riªng (private,
protected). Nh÷ng thµnh phÇn ®îc khai b¸o private, protected chØ ®îc
truy nhËp bëi c¸c hµm thµnh phÇn cña líp, riªng ®èi víi c¸c hµm kiÓu
protected th× cho phÐp c¸c hµm thµnh phÇn trong c¸c líp cã quan hÖ kÕ thõa
(líp dÉn xuÊt) míi ®îc truy nhËp. Ngîc l¹i c¸c thµnh phÇn kiÓu public cã
thÓ ®îc truy nhËp tõ bªn ngoµi líp. Nguyªn lÝ che dÊu th«ng tin cña C++
®îc thùc hiÖn b»ng c¸ch sö dông d¹ng khai b¸o private hoÆc protected. Tõ
kho¸ private lµ tuú chän, nÕu mÆc ®Þnh th× nh÷ng thµnh phÇn kh«ng ®îc
khai b¸o lµ public sÏ lµ private.
Nh÷ng biÕn ®îc khai b¸o trong c¸c líp ®îc gäi lµ d÷ liÖu thµnh
phÇn, cßn c¸c hµm ®îc gäi lµ hµm thµnh phÇn. C¸c hµm thµnh phÇn kiÓu
private chØ cã thÓ truy nhËp ®îc c¸c d÷ liÖu vµ hµm trong vïng private, cßn
c¸c hµm thµnh phÇm kiÓu public th× truy nhËp ®îc tÊt c¶ c¸c kiÓu d÷ liÖu
vµ c¸c hµm trong cïng líp.
Trong líp Point th× c¸c biÕn ®îc khai b¸o trong vïng private (vïng
riªng) lµ d÷ liÖu thµnh phÇn, cßn c¸c hµm trong vïng public (vïng chung) lµ
c¸c thµnh phÇn. D÷ liÖu thµnh phÇn cña líp kh«ng thÓ cã kiÓu cña chÝnh líp
®ã, nhng cã thÓ lµ kiÓu con trá cña líp nµy, vÝ dô:
class A
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
{
A x; // kh«ng cho phÐp, v× x kh«ng cã kiÓu líp A
A *p; // cho phÐp v× p lµ con trá kiÓu líp A
};
d÷ liÖu thµnh phÇn cña líp còng cã thÓ lµ liÓu cña líp kh¸c.
VÝ dô:
class A
{
-
---
};
class B
{
A a:
-
---
};
II.1.2. T¹o lËp c¸c ®èi tîng
Trong C++, mét ®èi tîng lµ mét phÇn tö d÷ liÖu ®îc khai b¸o kiÓu
lµ mét class. Trong vÝ dô trªn, khai b¸o líp Point míi chØ x¸c ®Þnh c¸c
thµnh phÇn cña líp Point chø cha t¹o ra mét ®èi tîng cô thÓ. Líp lµ mét
kiÓu ®èi tîng trõu tîng, nªn sau khi ®Þnh nghÜa líp chóng ta cã thÓ khai
b¸o c¸c biÕn gièng nh ®èi víi kiÓu ®îc ®Þnh nghÜa bëi ngêi sö dông.
Khi c¸c ®èi tîng ®îc t¹o lËp th× sÏ cã mét chïm bé nhí ®îc cÊp
ph¸t ®Ó chøa c¸c thµnh phÇn d÷ liÖu cña mçi ®èi tîng. C¸c ®èi tîng cña
cïng mét líp cã thÓ ®îc khëi ®Çu vµ g¸n cho mét ®èi tîng kh¸c. theo
ngÇm ®Þnh, viÖc sao mét ®èi tîng lµ t¬ng ®¬ng víi viÖc sao mét thµnh
phÇn cña nã.
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
C¸c ®èi tîng cßn cã thÓ ®îc cÊp ph¸t ®éng trong heap, gièng nh
nh÷ng phÇn tö kh¸c.
II.1.3. C¸c thµnh phÇn d÷ liÖu
C¸c thµnh phÇn d÷ liÖu trong mét líp kh«ng thÓ ®îc khai b¸o kiÓu
auto, register, hay extern. Chóng cã thÓ lµ c¸c enum, nhãm bit vµ c¸c kiÓu
d÷ liÖu cã s½n hoÆc cña ngêi sö dông ®Þnh nghÜa. Thµnh phÇn d÷ liÖu còng
cã thÓ lµ mét ®èi tîng, tuy nhiªn chóng chØ cã thÓ lµ nh÷ng ®èi tîng cña
c¸c líp ®· ®îc khai b¸o hoÆc ®· ®îc ®Þnh nghÜa tríc ®ã.
*D÷ liÖu thµnh phÇn kiÓu private
Khi c¸c thµnh phÇn d÷ liÖu mét líp ®îc khai b¸o theo kiÓu private
th× chØ cã th¸nh phÇn cña chÝnh líp ®ã hoÆc c¸c líp b¹n cña nã míi ®îc
truy nhËp ®Õn c¸c thµnh phÇn nµy.
*D÷ liÖu thµnh phÇn public
NÕu ta khai b¸o l¹i c¸c thµnh phÇn d÷ liÖu trong líp Point sang d¹ng
public, tøc lµ: Lóc ®ã méi thµnh phÇn trong líp Point ®Òu cã thÓ ®îc truy
nhËp tõ thÕ giíi bªn ngoµi.
*D÷ liÖu thµnh phÇn protected
§Ó sö dông ®îc c¸c thµnh phÇn d÷ liÖu cña mét líp tõ c¸c líp kh¸c
nhng ph¶i b¶o ®¶m nguyªn lý che dÊu th«ng tin th× chóng ta ph¶i khai b¸o
kiÓu protected. C¸c thµnh phÇn d÷ liÖu trong protected chØ cho phÐp c¸c
thµnh phÇn trong cïng líp vµ trong dÉn xuÊt truy nhËp ®Õn.
*D÷ liÖu thµnh phÇn tÜnh static
D÷ liÖu thµnh phÇn tÜnh lµ d÷ liÖu ®îc khai b¸o víi tõ kho¸ static ë
®Çu. Khi d÷ liÖu thµnh phÇn tÜnh th× tÊt c¶ c¸c thÓ hiÖn cña líp ®ã ®Òu ®îc
phÐp dïng chung thµnh phÇn d÷ liÖu nµy. D÷ liÖu theo kiÓu static ®îc ph©n
bè ë mét vïng bé nhí cè ®Þnh trong qu¸ tr×nh liªn kÕt còng gièng nh c¸c
biÕn ®îc khai b¸o theo kiÓu tæng thÓ (global).
BiÕn d÷ liÖu tÜnh cã nh÷ng tÝnh chÊt sau:
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
Khi ®èi tîng ®Çu tiªn cña líp ®îc t¹o lËp th× c¸c biÕn d÷ liÖu
tÜnh ®îc g¸n lµ 0.
ChØ cã mét b¶n sao cña biÕn tÜnh ®îc t¹o ra cho c¶ líp vµ sÏ
®îc sö dông chung cho tÊt c¶ c¸c ®èi tîng trong cïng líp.
ChØ ®îc sö dông trong líp, nhng nã tån t¹i trong suèt thêi gian
ho¹t ®éng cña ch¬ng tr×nh.
II.2. TÝnh t¬ng øng béi
Nh trªn ®· nãi t¬ng øng béi lµ kh¶ n¨ng sö dông mét tªn gäi díi
nhiÒu d¹ng kh¸c nhau. Hµm vµ to¸n tö t¶i béi lµ hai trêng hîp ®iÓn h×nh
cña t¬ng øng béi. Hµm, to¸n tö t¶i béi sÏ ®îc ph©n tÝch ®Ó ®èi s¸nh vÒ
kiÓu, sè lîng tham biÕn trong thêi gian dÞch ®Ó chän ra hµm, to¸n tö t¬ng
øng. Liªn kÕt ®îc thùc hiÖn trong thêi gian biªn dÞch ®îc gäi lµ thêi gian
tÜnh.
ThÕ m¹nh cña t¬ng øng béi cã hai cÊp:
Cho phÐp chóng ta xö lý c¸c kh¸i niÖm cã liªn hÖ nhau theo mét
c¸ch gièng nhau, lµm cho ch¬ng trÝnh tæng qu¸t h¬n vµ dÔ hiÓu
h¬n.
TÝnh t¬ng øng béi cã thÓ ®îc dïng ®Ó viÕt ch¬ng tr×nh cã thÓ
më réng nhiÒu h¬n. Khi mét lo¹i míi ®îc thªm vµo cã liªn hÖ
víi c¸c kiÓu ®ang cã th× b¶n chÊt t¬ng øng béi cña nã sÏ lµm cho
lo¹i míi nµy thÝch hîp ngay vµo hÖ thèng mµ kh«ng ®ßi hái ph¶i
thay phÇn cßn l¹i cña ch¬ng tr×nh.
C¬ chÕ thùc hiÖn t¬ng øng béi:
T¬ng øng béi
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
T¬ng øng béi
trong thêi gian dÞch
T¬ng øng béi trong
thêi gian thùc hiÖn
CÊu tróc d÷ liÖu mÉu víi C++
II.2.1. Hµm t¶i béi
Ng«n ng÷ C kh«ng cho phÐp ngêi lËp tr×nh sö dông cïng mét tªn
cho nhiÒu hµm trong mét ch¬ng tr×nh. Tuy vËy trong C++, viÖc ®Þnh nghÜa
nµy lµ hoµn toµn hîp lÖ, c¸c hµm nµy kh¸c nhau vÒ sè lîng hoÆc kiÓu cña
c¸c ®èi sè cho hµm. C¸c hµm nh vËy ®îc gäi lµ hµm t¶i béi (kÓ c¶ cÊu
tõ).
II.2.2. To¸n tö t¶i béi.
§· nhiÒu lÇn chóng ta kh¼ng ®Þnh r»ng trong C++ chóng ta cã thÓ t¹o
ra nh÷ng kiÓu d÷ liÖu míi cã hµnh vi gièng nh c¸c kiÓu d÷ liÖu c¬ së. H¬n
thÕ n÷a chóng ta cßn cã thÓ ®a thªm ®Þnh nghÜa míi cho nh÷ng to¸n tö
®îc ®Þnh nghÜa tríc. Nh÷ng to¸n tö cïng tªn thøc hiÖn ®îc nhiÒu chøc
n¨ng kh¸c nhau ®îc gäi lµ toµn tö t¶i béi.
Quy t¾c x©y dùng to¸n tö t¶i béi:
1. ChØ cã thÓ x©y dùng nh÷ng to¸n tö ®· cã trong C++ ®Ó thµnh to¸n tö
béi . Kh«ng thÓ tù ý t¹o ra nh÷ng to¸n tö míi .
2. To¸n tö t¶i béi ph¶i cã Ýt nhÊt mét to¸n h¹ng cã kiÓu lµ kiÓu ®îc
®Þnh nghÜa bëi ngêi sö dông .
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
CÊu tróc d÷ liÖu mÉu víi C++
3. Chóng ta kh«ng thÓ tù ý lµm thay ®æi ý nghÜa c¬ b¶n cña to¸n tö
®· ®îc ®Þnh nghÜa tríc . VÝ dô, chóng ta kh«ng thÓ ®Þnh nghÜa l¹i
®îc c¸c phÐp +, - ®èi víi c¸c kiÓu c¬ së ( int, float).
4. To¸n tö t¶i béi ®îc x©y dùng vµ sö dông tu©n theo quy t¾c có
ph¸p cña to¸n tö c¬ së nh ®· ®îc ®Þnh nghÜa trong ng«n ng÷.
5. Mét sè to¸n tö kh«ng thÓ ®Þnh nghÜa thµnh to¸n tö t¶i béi ®îc (
b¶ng 3-1).
6. Mét sè to¸n tö kh«ng thÓ sö sông víi friend ®Ó thµnh hµm to¸n tö
t¶i béi( b¶ng 3-2), nhng cã thÓ sö dông hµm thµnh phÇn ®Ó ®æi
thµnh hµm to¸n tö t¶i béi.
7. Hµm thµnh phÇn to¸n tö t¶i béi mét ng«i kh«ng cã tham biÕn vµ tr¶
l¹i gi¸ trÞ têng minh. Hµm th©n thiÖn to¸n tö t¶i béi mét ng«i cã
tham biÕn lµ ®èi tîng.
8. Hµm thµnh phÇn lµ to¸n tö t¶i béi hai ng«i cã mét tham biÕn vµ
hµm th©n thiÖn lµ to¸n tö t¶i béi nhÞ nguyªn cã hai tham biÕn.
9. Khi sö dông hµm thµnh phÇn lµ to¸n tö t¶i béi nhÞ nguyªn th× to¸n
h¹ng bªn tr¸i cña to¸n tö ph¶i lµ ®èi tîng trong líp chøa hµm
thµnh phÇn ®ã .
10. Nh÷ng to¸n tö sè häc nhÞ nguyªn +, -, *. Vµ / ph¶i tr¶ l¹i gi¸ trÞ
mét c¸ch têng minh.
sizeof
To¸n tö x¸c ®Þnh kÝch thíc
.
To¸n tö x¸c ®Þnh thµnh phÇn
.*
To¸n tö x¸c ®Þnh thµnh phÇn mµ con trá tíi
::
To¸n tö ph©n gi¶i miÒn x¸c ®Þnh
?:
To¸n tö ®iÒu kiÖn
B¶ng 3-1. Nh÷ng to¸n tö kh«ng thÓ t¶i béi
more information and additional documents
connect with me here: http://facebook.com/ngphutien/
file đồ án kèm theo: Cau truc du lieu voi C++.rar 259 KB
https://mega.co.nz/#!FgU3nAKa!-VgkoAGeGZtP3Q2LwN2LKMQXE4Uj67Q4nbAJrT4aGB8
- Xem thêm -