intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Luận văn tốt nghiệp: Cấu trúc dữ liệu mẫu với C++ - ĐHDL Đông Đô

Chia sẻ: Nguyễn Phú Tiền | Ngày: | Loại File: PDF | Số trang:99

235
lượt xem
48
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Luận văn tốt nghiệp: Cấu trúc dữ liệu mẫu với C++ gồm 4 chương, trình bày về ngôn ngữ C++ và lập trình hướng đối tượng, thiết kế cài đặt các lớp đối tượng, hàm và lớp mẫu, cấu trúc dữ liệu và các lớp mẫu. Hy vọng nội dung luận văn này là tài liệu tham khảo hữu ích cho bạn.

Chủ đề:
Lưu

Nội dung Text: Luận văn tốt nghiệp: Cấu trúc dữ liệu mẫu với C++ - ĐHDL Đông Đô

  1. 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&LT 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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 §A_GIAC §¦¥NG_TH N VE(TRON) 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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 T­¬ng øng béi trong trong thêi gian dÞch thêi gian thùc hiÖn
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2