Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Kỹ thuật lập trình Kỹ thuật lập trìnhcấu trúc dữ liệu mẫu với c++...

Tài liệu Kỹ thuật lập trìnhcấu trúc dữ liệu mẫu với c++

.PDF
99
189
107

Mô tả:

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. L­u 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 ®Ó l­u 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 nh­ng 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, nh­ng 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 ®ã, nh­ng 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ø ch­a 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 nh­ng 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, nh­ng 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), nh­ng 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 -

Tài liệu liên quan