Giáo trình Lập trình hướng đối tượng với C++ - Chương 1: Lập trình hướng đối tượng, phương pháp giải quyết bài toán mới

Ch-¬ng 1  
LËp tr×nh h-íng ®èi t-îng  
ph-¬ng ph¸p gi¶i quyÕt bµi to¸n míi  
Ph-¬ng ph¸p lËp tr×nh  
1.  
Tõ nhiÒu n¨m nay chóng ta ®· nghe nhiÒu ®Õn thuËt ng÷ “LËp tr×nh h-íng ®èi  
t-îng” (OOP - Object Oriented Programming). VËy thùc chÊt nã lµ g×? §Ó hiÓu  
®-îc vÊn ®Ò nµy chóng ta b¾t ®Çu nh×n l¹i mét chót lÞch sö ph¸t triÓn c¸c ph-¬ng  
ph¸p lËp tr×nh. Vµo nh÷ng ngµy ®Çu ph¸t triÓn cña m¸y tÝnh, khi c¸c phÇn mÒm cßn  
rÊt ®¬n gi¶n chØ cì vµi chôc dßng lÖnh, ch-¬ng tr×nh ®-îc viÕt tuÇn tù víi c¸c c©u  
lÖnh thùc hiÖn tõ ®Çu ®Õn cuèi. C¸ch viÕt ch-¬ng tr×nh nh- thÕ nµy gäi lµ ph-¬ng  
ph¸p lËp tr×nh tuyÕn tÝnh. Khoa häc m¸y tÝnh ngµy cµng ph¸t triÓn, c¸c phÇn mÒm  
®ßi hái ngµy cµng phøc t¹p vµ lín h¬n rÊt nhiÒu. §Õn lóc nµy ph-¬ng ph¸p lËp tr×nh  
tuyÕn tÝnh tá ra kÐm hiÖu qu¶ vµ cã nh÷ng tr-êng hîp ng-êi lËp tr×nh kh«ng thÓ  
kiÓm so¸t ®-îc ch-¬ng tr×nh. ThÕ lµ ph-¬ng ph¸p lËp tr×nh cÊu tróc (LTCT) ra ®êi.  
Theo c¸ch tiÕp cËn nµy, ch-¬ng tr×nh ®-îc tæ chøc thµnh c¸c ch-¬ng tr×nh con.  
Mçi ch-¬ng tr×nh con ®¶m nhËn xö lý mét c«ng viÖc nhá trong toµn bé hÖ thèng.  
Mçi ch-¬ng tr×nh con nµy l¹i cã thÓ chia nhá thµnh c¸c ch-¬ng tr×nh con nhá h¬n.  
Qu¸ tr×nh ph©n chia nh- vËy tiÕp tôc diÔn ra cho ®Õn c¸c ch-¬ng tr×nh con nhá nhËn  
®-îc ®ñ ®¬n gi¶n. Ng-êi ta gäi ®ã lµ qu¸ tr×nh lµm mÞn dÇn. C¸c ch-¬ng tr×nh con  
t-¬ng ®èi ®éc lËp víi nhau, do ®ã cã thÓ ph©n c«ng cho tõng nhãm ®¶m nhËn viÕt  
c¸c ch-¬ng tr×nh con kh¸c nhau. Ng«n ng÷ lËp tr×nh thÓ hiÖn râ nÐt nhÊt ph-¬ng  
ph¸p lËp tr×nh cÊu tróc chÝnh lµ Pascal. Tuy nhiªn, khi sö dông ph-¬ng ph¸p lËp  
tr×nh nµy vÉn cßn gÆp mét khã kh¨n lín lµ tæ chøc d÷ liÖu cña hÖ thèng nh- thÕ nµo  
trong m¸y tÝnh. Bëi v× theo quan ®iÓm cña LTCT th× Ch-¬ng tr×nh = CÊu tróc d÷  
liÖu + Gi¶i thuËt. §Ó lµm ®-îc viÖc nµy ®ßi hái ng-êi lËp tr×nh ph¶i cã kiÕn rÊt  
v÷ng vÒ cÊu tróc d÷ liÖu. Mét khã kh¨n n÷a gÆp ph¶i lµ gi¶i thuËt cña ch-¬ng tr×nh  
phô thuéc rÊt chÆt chÏ vµo cÊu tróc d÷ liÖu, do vËy chØ cÇn mét sù thay ®æi nhá ë  
cÊu tróc d÷ liÖu còng cã thÓ lµm thay ®æi gi¶i thuËt vµ nh- vËy ph¶i viÕt l¹i ch-¬ng  
tr×nh. §iÒu nµy râ rµng kh«ng thÓ thÝch hîp khi ph¶i x©y dùng mét dù ¸n phÇn mÒm  
rÊt lín. Mét ph-¬ng ph¸p lËp tr×nh míi ra ®êi ®Ó kh¾c phôc nh-îc ®iÓm nµy vµ ®ã  
chÝnh lµ ph-¬ng ph¸p lËp tr×nh h-íng ®èi t-îng (LTH§T). §iÓm c¨n b¶n cña  
ph-¬ng ph¸p nµy lµ thiÕt kÕ ch-¬ng tr×nh xoay quanh d÷ liÖu cña hÖ thèng. NghÜa  
lµ lóc nµy c¸c thao t¸c xö lý cña hÖ thèng ®-îc g¾n liÒn víi d÷ liÖu vµ nh- vËy mét  
sù thay ®æi nhá cña d÷ liÖu chØ ¶nh h-ëng ®Õn c¸c mét sè nhá c¸c hµm xö lý liªn  
quan. Sù g¾n kÕt gi÷a d÷ liÖu vµ c¸c hµm xö lý trªn chóng t¹o ra ®èi t-îng. Mét -u  
®iÓm n÷a cã ë ph-¬ng ph¸p LTH§T lµ c¸ch tiÕp cËn bµi to¸n trë nªn gÇn gòi víi  
thùc tÕ h¬n. §Ó hiÓu râ h¬n vÒ ph-¬ng ph¸p lËp tr×nh nµy, kh«ng g× tèt h¬n lµ  
chóng ta ®i vµo mét bµi to¸n cô thÓ, ch¼ng h¹n bµi to¸n quan hÖ gia ®×nh. ë ®©y yªu  
-1-  
Ng«n ng÷ C++  
cÇu lµm thÕ nµo ®Ó thÓ hiÖn ®-îc c¸c mèi quan hÖ gi÷a c¸c thµnh viªn trong mét  
gia ®×nh trªn m¸y tÝnh vµ cã thÓ tr¶ lêi ®-îc c©u hái d¹ng kh¸ tæng qu¸t: “A vµ B cã  
quan hÖ nh- thÕ nµo trong gia ®×nh ?” víi A vµ B lµ hai c¸ thÓ bÊt kú. Chóng ta sÏ  
ph©n tÝch xem c¸ch gi¶i quyÕt bµi to¸n nµy nh- thÕ nµo.  
2. Bµi to¸n quan hÖ gia ®×nh  
Trong x· héi, mçi ng-êi ®Òu cã mét gia ®×nh, trong ®ã tån t¹i nhiÒu mèi quan  
hÖ gia ®×nh kh¸ phøc t¹p nh- «ng, bµ, cha, mÑ, c«, chó, b¸c, v.v. Th«ng th-êng, ®Ó  
thÓ hiÖn c¸c mèi quan hÖ nµy ng-êi ta biÓu diÔn b»ng mét s¬ ®å c©y quan hÖ. D-íi  
®©y lµ mét vÝ dô biÓu diÔn mét gia ®×nh ba thÕ hÖ b»ng h×nh 1.1.  
Mr. Th¾ng  
Ms. Nga  
Mr. Quang  
Mr. H-ng  
Ms. V©n  
Mr. TuÊn  
Ms. H»ng  
Miss. Trang  
Miss. Mai  
H×nh 1.1 C©y quan hÖ trong mét gia ®×nh  
§Ó gi¶i quyÕt bµi to¸n nµy theo ph-¬ng ph¸p LTCT, c«ng viÖc ®Çu tiªn lµ ph¶i  
x©y dùng mét cÊu tróc d÷ liÖu thÓ hiÖn ®-îc c©y quan hÖ trªn. Tr«ng qua cã vÎ lµ  
®¬n gi¶n nh-ng nÕu thö lµm xem sÏ thÊy kh«ng ®¬n gi¶n chót nµo, thËm chÝ cßn  
khã. Bëi v× nã ®ßi hái ng-êi lËp tr×nh ph¶i rÊt thµnh th¹o sö dông con trá, ph¶i x©y  
dùng ®-îc gi¶i thuËt cËp nhËt th«ng tin trªn c©y quan hÖ. C¸c gi¶i thuËt nµy t-¬ng  
®èi phøc t¹p ®èi víi mét cÊu tróc d÷ liÖu nh- trong bµi to¸n. Yªu cÇu cña bµi to¸n  
lµ tr¶ lêi ®-îc c©u hái d¹ng nh- “H-ng vµ Mai cã quan hÖ nh- thÕ nµo ?”. C©u tr¶  
lêi cña ch-¬ng tr×nh ph¶i lµ “H-ng lµ anh hä cña Mai”. §Ó cã thÓ thùc hiÖn ®-îc  
nh- vËy, râ rµng chóng ta ph¶i x©y dùng ®-îc gi¶i thuËt t×m ®-îc mèi quan hÖ gi÷a  
hai nót trªn c©y quan hÖ. Mét vÊn ®Ò phøc t¹p vµ tÕ nhÞ h¬n lµ tªn gäi cho c¸c mèi  
quan hÖ gia ®×nh ë ViÖt nam rÊt phong phó! Mét khã kh¨n lµ ph¶i vÐt c¹n hÕt c¸c  
mèi quan hÖ cã thÓ cã trªn mét c©y quan hÖ. Mét khã kh¨n n÷a gÆp ph¶i lµ khi cÇn  
ph¸t triÓn, ch-¬ng tr×nh ph¶i qu¶n lý ®-îc nhiÒu gia ®×nh cïng mét lóc vµ c¸c gia  
®×nh nµy cã mèi quan hÖ th«ng gia víi nhau. H×nh 1.2 lµ s¬ ®å quan hÖ ®-îc ph¸t  
triÓn tõ s¬ ®å vÝ dô trªn minh ho¹ cho vÊn ®Ò nµy.  
-2-  
LËp tr×nh h-íng ®èi t-îng  
Mr. Th¾ng  
Ms. Nga  
Mr. Thµnh  
Ms. Lan  
-
-
-
-
-
-
-
-
-
-
-
-
Mr. Quang  
Ms. V©n  
Mr. TuÊn  
Ms. H»ng  
-
- - -  
Mr. H-ng  
Miss. Trang  
Miss. Mai  
H×nh 1.2 Më réng quan hÖ gi÷a c¸c gia ®×nh  
Mét c©u hái ®Æt ra: “LiÖu víi cÊu tróc d÷ liÖu cò cã ®¶m b¶o gi¶i quyÕt ®-îc  
vÊn ®Ò nµy kh«ng ?”. Râ rµng c©u tr¶ lêi lµ kh«ng. S¬ ®å quan hÖ trªn h×nh vÏ sÏ  
ph¶i m« t¶ quan hÖ cña mét gia ®×nh. ChØ víi chót Ýt sù thay ®æi vÒ cÊu tróc d÷ liÖu  
còng dÉn ®Õn mét lo¹t vÊn ®Ò ®ßi hái ph¶i viÕt l¹i c¸c gi¶i thuËt cña ch-¬ng tr×nh.  
Ph-¬ng ph¸p lËp tr×nh míi h-íng ®èi t-îng cho phÐp chóng ta kh¾c phôc ®-îc c¸c  
vÊn ®Ò ®· nªu ra. Trong suèt c¸c tr×nh bµy cña cuèn s¸ch nµy sÏ cè g¾ng nªu bËt  
®-îc c¸ch gi¶i quyÕt vÊn ®Ò nhê LTH§T.  
Theo c¸ch tiÕp cËn LTH§T, bµi to¸n quan hÖ gia ®×nh ®-îc xem xÐt d-íi gãc  
®é qu¶n lý tËp c¸c ®èi t-îng Con ng-êi. §Ó biÕt mèi quan hÖ gia ®×nh cña mçi c¸  
thÓ, cÇn thÓ hiÖn mét sè quan hÖ c¬ b¶n nh- cha, mÑ, anh em, con c¸i, vî chång cña  
c¸ thÓ ®ã. Nh- vËy, mçi ®èi t-îng con ng-êi cña bµi to¸n cã c¸c thuéc tÝnh riªng,  
nãi lªn r»ng cha mÑ, anh em, v.v.. cña hä lµ ai. Ngoµi ra còng cÇn cã mét thuéc tÝnh  
n÷a cho biÕt tªn c¸ thÓ lµ g×. Cã thÓ m« t¶ mét líp c¸c ®èi t-îng con ng-êi nh-  
h×nh 1.3.  
Con ng-êi  
Tªn  
?
Cha ?  
MÑ ?  
Anh em ?  
Con c¸i ?  
Vî / Chång ?  
H×nh 1.3 M« t¶ mét líp c¸c ®èi t-îng con ng-êi  
NÕu chØ cã nh- vËy th× ch¼ng kh¸c g× mét cÊu tróc hay b¶n ghi trong cÊu tróc  
d÷ diÖu ®-îc sö dông ë ph-¬ng ph¸p LTCT. VÊn ®Ò ë ®©y lµ ph-¬ng ph¸p LTH§T  
xem c¸c mèi quan hÖ trong gia ®×nh ®-îc h×nh thµnh mét c¸ch tù nhiªn do c¸c sù  
kiÖn cô thÓ trong cuéc sèng t¹o nªn. VÝ dô, khi ng-êi phô n÷ sinh con, ®øa con c«  
-3-  
Ng«n ng÷ C++  
ta sinh ra sÏ cã mÑ lµ c« ta vµ cha lµ chång c« ta, ®ång thêi anh chång ph¶i ®-îc  
cËp nhËt ®Ó cã thªm ®øa con nµy. Nh÷ng ®øa con tr-íc cña c« ta sÏ cã thªm ®øa em  
nµy vµ ®øa bÐ cã thªm nh÷ng ng-êi anh hoÆc ng-êi chÞ ®ã. DÔ dµng thÊy r»ng cã  
hai sù kiÖn chÝnh t¸c ®éng ®Õn mèi quan hÖ gia ®×nh lµ sù sinh con cña ng-êi phô  
n÷ vµ h«n nh©n gi÷a hai c¸ thÓ kh¸c giíi trong x· héi. C¸c sù kiÖn nµy g¾n liÒn víi  
tõng con ng-êi trong bµi to¸n. §iÒu nµy cã nghÜa lµ khi nãi ®Õn mét sù kiÖn nµo th×  
ph¶i chØ ra nã ®-îc ph¸t sinh bëi ng-êi nµo. VÝ dô, khi nãi sù kiÖn sinh con th× ph¶i  
biÕt ng-êi nµo sinh. Khi mét sù kiÖn cña mét con ng-êi nµo ®ã x¶y ra (vÝ dô nh-  
sinh con) th× c¸c thuéc tÝnh cña chÝnh anh ta sÏ bÞ thay ®æi, ®ång thêi thuéc tÝnh cña  
mét sè ®èi t-îng liªn quan còng cã thÓ thay ®æi theo. Qu¸ tr×nh ®ãng gãi gi÷a c¸c  
sù kiÖn vµ thuéc tÝnh sÏ t¹o ra §èi t-îng, kh¸i niÖm c¬ b¶n cña ph-¬ng ph¸p  
LTH§T. Mét m« t¶ chung cho c¸c ®èi t-îng con ng-êi cña bµi to¸n ®-îc gäi lµ  
mét Líp. H×nh 1.4 minh ho¹ mét líp Con ng-êi cã thªm c¸c sù kiÖn cña bµi to¸n.  
Con ng-êi  
Tªn  
?
Cha ?  
MÑ ?  
Anh em ?  
Con c¸i ?  
Vî / Chång ?  
Sinh con  
C-íi  
H×nh 1.4 C¸c sù kiÖn bæ sung g¾n víi con ng-êi.  
Sau khi ®· g¾n kÕt c¸c sù kiÖn vµo ®èi t-îng nh- trªn, vÊn ®Ò lµ t¹o mét s¬ ®å  
quan hÖ gia ®×nh nh- thÕ nµo. D-íi ®©y lµ mét vÝ dô minh ho¹ viÖc t¹o ra mét quan  
hÖ gia ®×nh dùa trªn c¸c sù kiÖn cuéc sèng. Gi¶ thiÕt lµ ®· cã hai ®èi t-îng lµ «ng  
Th¾ng vµ bµ Mai.  
Mr. Th¾ng  
Ms. Mai  
Miss. Nga  
Mr. TuÊn  
-4-  
LËp tr×nh h-íng ®èi t-îng  
C¸c sù kiÖn ®Ó t¹o ra c©y quan hÖ trªn cã thÓ viÕt theo trËt tù nh- sau:  
Th¾ng.C-íi (Mai)  
Mai.Sinh con (g¸i, Nga)  
§èi t-îng t¹o sù kiÖn . Sù kiÖn ( th«ng sè kÌm theo sù kiÖn )  
C¸c sù kiÖn viÕt theo có ph¸p:  
Nh- vËy c¸c b¹n ®· thÊy r»ng chóng ta kh«ng cÇn ph¶i quan t©m ®Õn c¸ch t¹o  
mét cÊu tróc c©y quan hÖ nh- thÕ nµo bªn trong d÷ liÖu cña ch-¬ng tr×nh mµ vÉn cã  
thÓ cung cÊp d÷ liÖu bµi to¸n cho ch-¬ng tr×nh th«ng qua c¸c sù kiÖn nh- trªn.  
Chóng ta quay l¹i vÊn ®Ò chÝnh cña bµi to¸n lµ tr¶ lêi c¸c c©u hái vÒ mèi quan hÖ  
gia ®×nh nh- thÕ nµo khi tiÕp cËn bµi to¸n theo ph-¬ng ph¸p nµy. §Ó tr¶ lêi ®-îc  
c©u hái tæng qu¸t “X vµ Y cã quan hÖ gia ®×nh nh- thÕ nµo ?” ta cÇn ph¶i tr¶ lêi c¸c  
c©u hái nhá nh- “X cã ph¶i lµ anh cña Y kh«ng ?”, “X cã ph¶i lµ «ng néi cña Y  
kh«ng ?”, v.v.. C©u hái cã thÓ nh×n tõ gãc ®é ®èi t-îng X nh- : “§èi t-îng cã ph¶i  
lµ anh cña Y kh«ng ?”, “cã ph¶i lµ «ng néi cña Y kh«ng ?”, v.v.. Nh- vËy c©u hái  
lóc nµy ®· giao vÒ cho ®èi t-îng ®Ó tr¶ lêi. C¸c ®èi t-îng lóc nµy cÇn ph¶i cã c¸c  
ph-¬ng thøc ®Ó tr¶ lêi c¸c c©u hái nh- vËy. Vµ b©y giê mét líp ®èi t-îng Con  
ng-êi ®-îc minh ho¹ nh- h×nh 1.5.  
Con ng-êi  
Tªn ?  
Cha ?  
MÑ ?  
Anh em ?  
Con c¸i ?  
Vî / Chång ?  
Sinh con  
C-íi  
Lµ anh  
Lµ «ng néi  
.......  
H×nh 1.5 Thªm c¸c ph-¬ng thøc tr¶ lêi c©u hái  
Ta xem xÐt c¸c ®èi t-îng tr¶ lêi c¸c c©u hái nh- thÕ nµo? Ch¼ng h¹n X tr¶ lêi  
c©u hái “§èi t-îng cã ph¶i lµ anh cña Y kh«ng ?” hoµn toµn ®¬n gi¶n. Nã chØ cÇn  
kiÓm tra xem Y cã ph¶i lµ anh em mµ trong thuéc tÝnh cña nã l-u gi÷ kh«ng. Hoµn  
-5-  
Ng«n ng÷ C++  
toµn t-¬ng tù ®èi víi c¸c c©u hái quan hÖ gÇn nh- lµ em, lµ chÞ, lµ bè, lµ mÑ,... Cßn  
c©u hái nh- “§èi t-îng cã ph¶i lµ «ng néi cña Y kh«ng ?” phøc t¹p h¬n chót Ýt. §Ó  
tr¶ lêi ®-îc c¸c c©u hái cã quan hÖ xa nh- thÕ ta ph¶i dùa vµo kÕt qu¶ tr¶ lêi cña  
c¸c c©u hái vÒ c¸c quan hÖ gÇn gòi h¬n. §Ó biÕt ®-îc X ®óng lµ «ng néi cña Y th×  
ph¶i chØ ra mét ng-êi Z nµo ®ã mµ X lµ bè cña Z vµ Z lµ bè cña Y. NÕu kh«ng chØ  
ra ®-îc Z th× X kh«ng ph¶i lµ «ng néi cña Y. ViÖc t×m kiÕm Z hoµn toµn ®¬n gi¶n  
bëi v× ch-¬ng tr×nh qu¶n lý tËp c¸c ®èi t-îng con ng-êi. H·y t×m Z trong tËp ®èi  
t-îng Con ng-êi. Cã thÓ thÊy c©u hái ban ®Çu ®· ®-îc ph©n chia thµnh hai c©u hái  
®¬n gi¶n víi chóng mµ ®· cã c¸ch tr¶ lêi. Tãm l¹i, c¸c vÊn ®Ò cña bµi to¸n ®· ®-îc  
gi¶i quyÕt khi tiÕp cËn theo ph-¬ng ph¸p LTH§T. Mét lîi ®iÓm cã thÓ thÊy ngay lµ  
bµi to¸n ®-îc ph©n tÝch rÊt gÇn víi thùc tÕ vµ tù nhiªn.  
Trªn ®©y míi chØ lµ sù ph©n tÝch s¬ khai bµi to¸n dùa theo ph-¬ng ph¸p  
LTH§T. §Ó lµm hoµn chØnh ®-îc bµi to¸n cßn cÇn mét sè kÜ thuËt cña LTH§T nh-  
tÝnh kÕ thõa, tÝnh ®a h×nh, ... Chóng t«i hy väng r»ng qua sù ph©n tÝch mét bµi to¸n  
nhá trªn ®· chøng tá ®-îc lîi Ých cña ph-¬ng ph¸p LTH§T. Trong môc tiÕp theo  
chóng t«i sÏ tãm t¾t vµ ®-a ra tæng quan s¬ bé vÒ LTH§T.  
3. LËp tr×nh h-íng ®èi t-îng  
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µ kh«ng cho phÐp d÷ liÖu biÕn ®éng tù do  
trong hÖ thèng. D÷ liÖu ®-îc g¾n chÆt víi c¸c hµm thµnh c¸c vïng riªng mµ chØ cã  
c¸c hµm ®ã t¸c ®éng lªn vµ cÊm c¸c hµm bªn ngoµi truy nhËp tíi mét c¸ch tuú tiÖn.  
LTH§T cho phÐp chóng ta ph©n tÝch bµi to¸n thµnh c¸c thùc thÓ ®-îc gäi lµ c¸c ®èi  
t-îng vµ sau ®ã x©y dùng c¸c d÷ liÖu cïng c¸c hµm xung quanh c¸c ®èi t-îng ®ã.  
C¸c ®èi t-îng cã thÓ t¸c ®éng, trao ®æi th«ng tin víi nhau th«ng qua c¬ chÕ th«ng  
b¸o (message). Tæ chøc mét ch-¬ng tr×nh h-íng ®èi t-îng cã thÓ m« t¶ nh- trong  
h×nh 1.6.  
§èi t-îng A  
§èi t-îng B  
message  
D÷ liÖu  
D÷ liÖu  
§èi t-îng C  
D÷ liÖu  
H×nh 1.6 C¸c ®èi t-îng trao ®æi qua th«ng b¸o  
LTH§T cã c¸c ®Æc tÝnh chñ yÕu sau:  
1. TËp trung vµo d÷ liÖu thay cho c¸c hµm  
-6-  
LËp tr×nh h-íng ®èi t-îng  
2. Ch-¬ng tr×nh ®-îc chia thµnh c¸c ®èi t-îng.  
3. C¸c cÊu tróc d÷ liÖu ®-îc thiÕt kÕ sao cho ®Æc t¶ ®-îc ®èi t-îng.  
4. C¸c hµm thao t¸c trªn c¸c vïng d÷ liÖu cña ®èi t-îng ®-îc g¾n víi cÊu  
tróc d÷ liÖu ®ã.  
D÷ liÖu ®-îc ®ãng gãi l¹i, ®-îc che giÊu vµ kh«ng cho phÐp c¸c hµm  
ngo¹i lai truy nhËp tù do.  
5.  
6. C¸c ®èi t-îng t¸c ®éng vµ trao ®æi th«ng tin víi nhau qua c¸c hµm  
7. Cã thÓ dÔ dµng bæ sung d÷ liÖu vµ c¸c hµm míi vµo ®èi t-îng nµo ®ã  
khi cÇn thiÕt  
8. Ch-¬ng tr×nh ®-îc thiÕt kÕ theo c¸ch tiÕp cËn tõ d-íi lªn (bottom-up).  
Sau ®©y lµ mét sè kh¸i niÖm ®-îc sö dông trong LTH§T.  
3.1 Mét sè kh¸i niÖm  
§èi t-îng (object)  
§èi t-îng lµ sù kÕt hîp gi÷a d÷ liÖu vµ thñ tôc (hay cßn gäi lµ c¸c ph-¬ng thøc  
- method) thao t¸c trªn d÷ liÖu ®ã. Cã thÓ ®-a ra c«ng thøc ph¶n ¸nh b¶n chÊt kü  
thuËt cña LTH§T nh- sau:  
§èi t-îng = D÷ liÖu + Ph-¬ng thøc  
Líp (class)  
Líp lµ mét kh¸i niÖm míi trong LTH§T so víi c¸c kü thuËt lËp tr×nh kh¸c. §ã  
lµ mét tËp c¸c ®èi t-îng cã cÊu tróc d÷ liÖu vµ c¸c ph-¬ng thøc gièng nhau (hay nãi  
c¸ch kh¸c lµ mét tËp c¸c ®èi t-îng cïng lo¹i). Nh- vËy khi cã mét líp th× chóng ta  
sÏ biÕt ®-îc mét m« t¶ cÊu tróc d÷ liÖu vµ ph-¬ng thøc cña c¸c ®èi t-îng thuéc líp  
®ã. Mçi ®èi t-îng sÏ lµ mét thÓ hiÖn cô thÓ (instance) cña líp ®ã. Trong lËp tr×nh,  
chóng ta cã thÓ coi mét líp nh- lµ mét kiÓu, cßn c¸c ®èi t-îng sÏ lµ c¸c biÕn cã  
kiÓu cña líp.  
Nguyªn t¾c ®ãng gãi d÷ liÖu  
Trong LTCT ta ®· thÊy lµ c¸c hµm hay thñ tôc ®-îc sö dông mµ kh«ng cÇn  
biÕt ®Õn néi dung cô thÓ cña nã. Ng-êi sö dông chØ cÇn biÕt chøc n¨ng cña hµm  
còng nh- c¸c tham sè cÇn truyÒn vµo ®Ó gäi hµm ch¹y mµ kh«ng cÇn quan t©m ®Õn  
nh÷ng lÖnh cô thÓ bªn trong nã. Ng-êi ta gäi ®ã lµ sù ®ãng gãi vÒ chøc n¨ng.  
Trong LTH§T, kh«ng nh÷ng c¸c chøc n¨ng ®-îc ®ãng gãi mµ c¶ d÷ liÖu còng  
nh- vËy. Víi mçi ®èi t-îng ng-êi ta kh«ng thÓ truy nhËp trùc tiÕp vµo c¸c thµnh  
phÇn d÷ liÖu c¶u nã mµ ph¶i th«ng qua c¸c thµnh phÇn chøc n¨ng (c¸c ph-¬ng thøc)  
®Ó lµm viÖc ®ã.  
Chóng ta sÏ thÊy sù ®ãng gãi thùc sù vÒ d÷ liÖu chØ cã trong mét ng«n ng÷  
LTH§T “thuÇn khiÕt” (pure) theo nghÜa c¸c ng«n ng÷ ®-îc thiÕt kÕ ngay tõ ®Çu chØ  
-7-  
Ng«n ng÷ C++  
cho LTH§T. Cßn ®èi víi c¸c ng«n ng÷ “lai” (hybrid) ®-îc x©y dùng trªn c¸c ng«n  
ng÷ kh¸c ban ®Çu ch-a ph¶i lµ H§T nh- C++ ®-îc nãi ®Õn trong cuèn s¸ch nµy,  
vÉn cã nh÷ng ngo¹i lÖ nhÊt ®Þnh vi ph¹m nguyªn t¾c ®ãng gãi d÷ liÖu.  
TÝnh kÕ thõa (inheritance)  
Mét kh¸i niÖm quan träng cña LTH§T lµ sù kÕ thõa. Sù kÕ thõa cho phÐp  
chóng ta ®Þnh nghÜa mét líp míi trªn c¬ së c¸c líp ®· tån t¹i, tÊt nhiªn cã bæ sung  
nh÷ng ph-¬ng thøc hay c¸c thµnh phÇn d÷ liÖu míi. Kh¶ n¨ng kÕ thõa cho phÐp  
chóng ta sö dông l¹i mét c¸ch dÔ dµng c¸c module ch-¬ng tr×nh mµ kh«ng cÇn mét  
thay ®æi c¸c module ®ã. Râ rµng ®©y lµ mét ®iÓm m¹nh cña LTH§T so víi LTCT.  
TÝnh ®a h×nh (polymorphime)  
TÝnh ®a h×nh xuÊt hiÖn khi cã kh¸i niÖm kÕ thõa. Gi¶ sö chóng ta cã mét kÕ  
thõa líp h×nh tø gi¸c vµ líp h×nh tam gi¸c kÕ thõa tõ líp h×nh ®a gi¸c (h×nh tam gi¸c  
vµ tø gi¸c sÏ cã ®Çy ®ñ c¸c thuéc tÝnh vµ tÝnh chÊt cña mét h×nh ®a gi¸c). Lóc nµy  
mét ®èi t-îng thuéc líp h×nh tam gi¸c hay tø gi¸c ®Òu cã thÓ hiÓu r»ng nã lµ mét  
h×nh ®a gi¸c. MÆt kh¸c víi mçi ®a gi¸c ta cã thÓ tÝnh diÖn tÝch cña nã. Nh- vËy lµm  
thÕ nµo mµ mét ®a gi¸c cã thÓ sö dông ®óng c«ng thøc ®Ó tÝnh diÖn tÝch phï hîp víi  
nã lµ h×nh tam gi¸c hay tø gi¸c. Ta gäi ®ã lµ tÝnh ®a h×nh.  
3.2 C¸c -u ®iÓm cña LTH§T  
LTH§T ®em l¹i mét sè lîi thÕ cho ng-êi thiÕt kÕ lÉn ng-êi lËp tr×nh. C¸ch tiÕp  
cËn h-íng ®èi t-îng gi¶i quyÕt ®-îc nhiÒu vÊn ®Ò tån t¹i trong qu¸ tr×nh ph¸t triÓn  
phÇn mÒm vµ t¹o ra ®-îc nh÷ng phÇn mÒm cã ®é phøc t¹p vµ chÊt l-îng cao.  
Ph-¬ng ph¸p nµy më ra mét triÓn väng to lín cho ng-êi lËp tr×nh. Nh÷ng -u ®iÓm  
chÝnh cña LTH§T lµ:  
1. Th«ng qua nguyªn lý kÕ thõa, chóng ta cã thÓ lo¹i bá ®-îc nh÷ng ®o¹n  
ch-¬ng tr×nh lÆp l¹i trong qu¸ tr×nh m« t¶ c¸c líp vµ cã thÓ më réng kh¶  
n¨ng sö dông cña c¸c líp ®· x©y dùng mµ kh«ng cÇn ph¶i viÕt l¹i.  
2. Ch-¬ng tr×nh ®-îc x©y dùng tõ nh÷ng ®¬n thÓ (®èi t-îng) 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 nhÊt  
®Þnh chø kh«ng ph¶i dùa vµo kinh nghiÖm vµ kü thuËt nh- tr-íc n÷a. §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 suÊt  
lao ®éng.  
3. Nguyªn lý ®ãng gãi hay che giÊ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 ®o¹n ch-¬ng  
tr×nh kh¸c.  
4. Cã thÓ x©y dùng ®-îc ¸nh x¹ c¸c ®èi t-îng cña bµi to¸n vµo ®èi t-îng  
ch-¬ng tr×nh.  
5. C¸ch tiÕp cËn thiÕt kÕ ®Æt träng t©m vµo d÷ liÖu, gióp chóng ta x©y dùng  
®-îc m« h×nh chi tiÕt vµ dÔ dµng cµi ®Æt h¬n.  
-8-  
LËp tr×nh h-íng ®èi t-îng  
6. C¸c hÖ thèng h-íng ®èi t-îng dÔ më réng, n©ng cÊp thµnh nh÷ng hÖ lín  
h¬n.  
7. Kü thuËt truyÒn th«ng b¸o trong viÖc trao ®æi th«ng tin gi÷a c¸c ®èi t-îng  
lµm cho viÖc m« t¶ giao diÖn víi c¸c hÖ thèng bªn ngoµi trë nªn ®¬n gi¶n  
h¬n.  
8. Cã thÓ qu¶n lý ®-îc ®é phøc t¹p cña nh÷ng s¶n phÈm phÇn mÒm.  
3.3 Nh÷ng øng dông cña LTH§T  
LTH§T lµ mét trong nh÷ng thuËt ng÷ ®-îc nh¾c ®Õn nhiÒu nhÊt hiÖn nay  
trong c«ng nghÖ phÇn mÒm vµ nã ®-îc øng dông ®Ó ph¸t triÓn phÇn mÒm trong  
nhiÒu lÜnh vùc kh¸c nhau. Trong sè ®ã, øng dông quan träng vµ næi tiÕng nhÊt hiÖn  
nay lµ thiÕt kÕ giao diÖn víi ng-êi sö dông, kiÓu nh- Windows. C¸c hÖ th«ng tin  
qu¶n lý trong thùc tÕ th-êng rÊt phøc t¹p, chøa nhiÒu ®èi t-îng víi c¸c thuéc tÝnh  
vµ hµm phøc t¹p. §Ó gi¶i quyÕt nh÷ng hÖ th«ng tin phøc t¹p nh- thÕ, LTH§T tá ra  
rÊt hiÖu qu¶. C¸c lÜnh vùc øng dông phï hîp víi kü thuËt LTH§T cã thÓ liÖt kª nh-  
d-íi ®©y:  
C¸c hÖ thèng lµm viÖc theo thêi gian thùc.  
*
*C¸c hÖ m« h×nh ho¸ hoÆc m« pháng c¸c qu¸ tr×nh.  
*C¸c hÖ c¬ së d÷ liÖu h-íng ®èi t-îng.  
C¸c hÖ siªu v¨n b¶n (hypertext), ®a ph-¬ng tiÖn (multimedia).  
C¸c hÖ thèng trÝ tuÖ nh©n t¹o vµ c¸c hÖ chuyªn gia.  
C¸c hÖ thèng song song vµ m¹ng n¬-ron.  
*
*
*
*
C¸c hÖ tù ®éng ho¸ v¨n phßng hoÆc trî gióp quyÕt ®Þnh.  
*C¸c hÖ CAD/CAM.  
Víi nhiÒu ®Æc tÝnh phong phó cña LTH§T nãi riªng, cña ph-¬ng ph¸p ph©n  
tÝch thiÕt kÕ vµ ph¸t triÓn h-íng ®èi t-îng nãi chung chóng ta hy väng c«ng nghiÖp  
phÇn mÒm sÏ cã nh÷ng c¶i tiÕn nh¶y vät kh«ng nh÷ng vÒ chÊt l-îng, mµ cßn gia  
t¨ng nhanh vÒ sè l-îng trong t-¬ng lai.  
C¸c ng«n ng÷ lËp tr×nh h-íng ®èi t-îng  
4.  
LTH§T kh«ng ph¶i lµ ®Æc quyÒn cña mét ng«n ng÷ ®Æc biÖt nµo. Còng gièng  
nh- kü thuËt lËp tr×nh cã cÊu tróc, c¸c kh¸i niÖm trong LTH§T ®-îc thÓ hiÖn trong  
nhiÒu ng«n ng÷ lËp tr×nh kh¸c nhau. Nh÷ng ng«n ng÷ cung cÊp ®-îc nh÷ng kh¶  
n¨ng LTH§T ®-îc gäi lµ ng«n ng÷ lËp tr×nh h-íng ®èi t-îng. Tuy vÉn cã nh÷ng  
ng«n ng÷ chØ cung cÊp kh¶ n¨ng t¹o líp vµ ®èi t-îng mµ kh«ng cho phÐp kÕ thõa,  
do ®ã h¹n chÕ kh¶ n¨ng LTH§T. H×nh 1.7 cho chóng ta mét c¸i nh×n tæng quan vÒ  
sù ph¸t triÓn c¸c ng«n ng÷ LTH§T.  
-9-  
Ng«n ng÷ C++  
SIMULA (66)  
SMALLTALK (71)  
SMALLTALK (80)  
ADA (83)  
C++ (86)  
EIFFEL (90)  
ADA (95)  
JAVA (95)  
H×nh 1.7 Sù ph¸t triÓn cña c¸c ng«n ng÷ LTH§T  
C¸c ng«n ng÷ SIMULA, SMALLTALK, JAVA thuéc hä ng«n ng÷ LTH§T  
thuÇn khiÕt, nghÜa lµ nã kh«ng cho phÐp ph¸t triÓn c¸c ch-¬ng tr×nh cÊu tróc trªn  
c¸c ng«n ng÷ lo¹i nµy. Cßn ng«n ng÷ C++ thuéc lo¹i ng«n ng÷ “lai” bëi v× nã ®-îc  
ph¸t triÓn tõ ng«n ng÷ C. Do ®ã trªn C++ vÉn cã thÓ sö dông tÝnh cÊu tróc vµ ®èi  
t-îng cña ch-¬ng tr×nh. §iÒu nµy tá ra rÊt phï hîp khi chóng ta míi b¾t ®Çu häc  
mét ng«n ng÷ lËp tr×nh. §ã chÝnh lµ lý do mµ chóng t«i sö dông ng«n ng÷ C++ ®Ó  
giíi thiÖu ph-¬ng ph¸p LTH§T trong cuèn s¸ch nµy. Mét lý do kh¸c n÷a lµ C++ sö  
dông có ph¸p cña ng«n ng÷ C lµ ng«n ng÷ rÊt th«ng dông trong lËp tr×nh chuyªn  
nghiÖp.  
Ng«n ng÷ lËp tr×nh C++  
5.  
Vµo n¨m 1983, gi¸o s- Bjarne Stroustrap b¾t ®Çu nghiªn cøu vµ ph¸t triÓn viÖc  
cµi ®Æt kh¶ n¨ng LTH§T vµo ng«n ng÷ C t¹o ra mét ng«n ng÷ míi gäi lµ C++. Tªn  
gäi nµy cã thÓ ph©n tÝch ý nghÜa r»ng nã lµ ng«n ng÷ C mµ cã hai ®Æc ®iÓm míi  
t-¬ng øng víi hai dÊu céng. §Æc ®iÓm thø nhÊt lµ mét sè kh¶ n¨ng më réng so víi  
C nh- tham chiÕu, chång hµm, tham sè mÆc ®Þnh... §Æc ®iÓm thø hai chÝnh lµ kh¶  
n¨ng LTH§T. HiÖn nay C++ ch-a ph¶i lµ mét ng«n ng÷ hoµn toµn æn ®Þnh. KÓ tõ  
khi phiªn b¶n ®Çu tiªn ra ®êi vµo n¨m 1986 ®· cã rÊt nhiÒu thay ®æi trong c¸c phiªn  
b¶n C++ kh¸c nhau: b¶n 1.1 ra ®êi vµo n¨m 1986, 2.0 vµo n¨m 1989 vµ 3.0 vµo  
n¨m 1991. Phiªn b¶n 3.0 nµy ®-îc sö dông ®Ó lµm c¬ së cho viÖc ®Þnh nghÜa mét  
ng«n ng÷ C++ chuÈn (kiÓu nh- Ansi C).  
-10-  
LËp tr×nh h-íng ®èi t-îng  
Trªn thùc tÕ hiÖn nay tÊt c¶ c¸c ch-¬ng tr×nh dÞch C++ ®Òu t-¬ng thÝch víi  
phiªn b¶n 3.0. V× vËy C++ hÇu nh- kh«ng g©y bÊt kú mét khã kh¨n nµo khi chuyÓn  
®æi tõ mét m«i tr-êng nµy sang m«i tr-êng kh¸c, nh- chóng ta ®· biÕt C++ nh- lµ  
mét sù bæ sung kh¶ n¨ng LTH§T vµo ng«n ng÷ C. SÏ cã nhiÒu ng-êi nghÜ r»ng  
ng«n ng÷ C nãi ë ®©y lµ C theo chuÈn ANSI. Thùc ra kh«ng ph¶i hoµn toµn nh- vËy.  
Tªn thùc tÕ vÉn tån t¹i mét vµi ®iÓm kh«ng t-¬ng thÝch gi÷a ANSI C vµ C++.  
MÆt kh¸c còng cÇn thÊy r»ng nh÷ng më réng cã trong C++ so víi Ansi C  
kh«ng chØ lµ ®Ó phôc vô cho môc ®Ých t¹o cho ng«n ng÷ kh¶ n¨ng LTH§T. Cã  
nh÷ng thay ®æi chØ víi môc ®Ých ®¬n thuÇn lµ t¨ng søc m¹nh cho ng«n ng÷ C hiÖn  
thêi.  
Ngoµi ra cã mét vµi thay ®æi nhá ë C++ so víi ANSI C nh- sau:  
§Þnh nghÜa c¸c hµm: khai b¸o, truyÒn tham sè vµ gi¸ trÞ  
*
tr¶ l¹i.  
*
*
Sù t-¬ng thÝch gi÷a c¸c con trá.  
TÝnh linh ho¹t cña c¸c h»ng (const).  
C¸c ®Æc ®iÓm më réng trong C++  
Nh- ®· ®Ò cËp ë trªn C++ chøa c¶ nh÷ng më réng so víi C mµ kh«ng liªn  
quan ®Õn kü thuËt h-íng ®èi t-îng. Nh÷ng më réng nµy sÏ ®-îc m« t¶ cô thÓ trong  
ch-¬ng sau, ë ®©y chóng ta chØ tãm t¾t l¹i mét vµi ®iÓm chÝnh.  
*
*
*
Kh¶ n¨ng viÕt c¸c dßng chó thÝch míi.  
Kh¶ n¨ng khai b¸o linh ho¹t h¬n.  
Kh¶ n¨ng ®Þnh nghÜa l¹i c¸c hµm: c¸c hµm cïng tªn cã thÓ  
thùc hiÖn theo nh÷ng thao t¸c kh¸c nhau. C¸c lêi gäi hµm sÏ dïng kiÓu  
vµ sè tham sè ®Ó x¸c ®Þnh ®óng hµm nµo cÇn thùc hiÖn.  
Cã thªm c¸c to¸n tö ®Þnh nghÜa bé nhí ®éng míi: new vµ  
*
delete.  
Kh¶ n¨ng ®Þnh nghÜa c¸c hµm inline ®Ó t¨ng tèc ®é thùc  
*
hiÖn ch-¬ng tr×nh.  
T¹o c¸c biÕn tham chiÕu ®Õn c¸c biÕn kh¸c.  
*
LTH§T trong C++  
C++ chøa ®ùng kh¸i niÖm líp. Mét líp bao gåm c¸c thµnh phÇn d÷ liÖu hay lµ  
thuéc tÝnh vµ c¸c ph-¬ng thøc hay lµ hµm thµnh phÇn. Tõ mét líp ta cã thÓ t¹o ra  
c¸c ®èi t-îng hoÆc b»ng c¸ch khai b¸o th«ng th-êng mét biÕn cã kiÓu lµ líp ®ã  
hoÆc b»ng c¸ch cÊp ph¸t bé nhí ®éng nhê sö dông to¸n tö new. C++ cho phÐp  
chóng ta ®ãng gãi d÷ liÖu nh-ng nã kh«ng b¾t buéc chóng ta thùc hiÖn ®iÒu ®ã.  
§©y lµ mét nh-îc ®iÓm cña C++. Tuy nhiªn còng cÇn thÊy r»ng b¶n th©n C++ chØ  
lµ sù më réng cña C nªn nã kh«ng thÓ lµ mét ng«n ng÷ LTH§T thuÇn khiÕt ®-îc.  
-11-  
Ng«n ng÷ C++  
C++ cho phÐp ta ®Þnh nghÜa c¸c hµm thiÕt lËp (constructor) cho mét líp. Hµm  
thiÕt lËp lµ mét ph-¬ng thøc ®Æc biÖt ®-îc gäi ®Õn t¹i thêi ®iÓm mét ®èi t-îng cña  
líp ®-îc t¹o ra. hµm thiÕt lËp cã nhiÖm vô khëi t¹o mét ®èi t-îng: cÊp ph¸t bé nhí,  
g¸n c¸c gi¸ trÞ cho c¸c thµnh phÇn d÷ liÖu còng nh- viÖc chuÈn bÞ chç cho c¸c ®èi  
t-îng míi. Mét líp cã thÓ cã mét hay nhiÒu hµm thiÕt lËp. §Ó x¸c ®Þnh hµm thiÕt  
lËp nµo cÇn gäi ®Õn, ch-¬ng tr×nh biªn dÞch sÏ so s¸nh c¸c ®èi sè víi c¸c tham sè  
truyÒn vµo. T-¬ng tù nh- hµm thiÕt lËp, mét líp cã thÓ cã mét hµm huû bá  
(destructor), mét ph-¬ng thøc ®Æc biÖt ®-îc gäi ®Õn khi ®èi t-îng ®-îc gi¶i phãng  
khái bé nhí.  
Líp trong C++ thùc chÊt lµ mét kiÓu d÷ liÖu do ng-êi sö dông ®Þnh nghÜa.  
Kh¸i niÖm ®Þnh nghÜa chång to¸n tö cho phÐp ®Þnh nghÜa c¸c phÐp to¸n trªn mét  
líp gièng nh- c¸c kiÓu d÷ liÖu chuÈn cña C. VÝ dô ta cã thÓ ®Þnh nghÜa mét líp sè  
phøc víi c¸c phÐp to¸n céng, trõ, nh©n, chia.  
Còng gièng nh- C, C++ cã kh¶ n¨ng chuyÓn ®æi kiÓu. Kh«ng nh÷ng thÕ, C++  
cßn cho phÐp më réng sù chuyÓn ®æi nµy sang c¸c kiÓu do ng-êi sö dông tù ®Þnh  
nghÜa (c¸c líp). VÝ dô, ta cã thÓ chuyÓn ®æi tõ kiÓu chuÈn int cña C sang kiÓu sè  
phøc mµ ta ®Þnh nghÜa ch¼ng h¹n.  
C++ cho phÐp thùc hiÖn kÕ thõa c¸c líp ®· x©y dùng. Tõ phiªn b¶n 2.0 trë ®i,  
C++ cßn cho phÐp mét líp kÕ thõa cïng mét lóc tõ nhiÒu nhiÒu líp kh¸c nhau (gäi  
lµ sù ®a kÕ thõa).  
Cuèi cïng C++ cung cÊp nh÷ng thao t¸c vµo ra míi dùa trªn c¬ së kh¸i niÖm  
luång d÷ liÖu (flow). Sù -u viÖt cña c¸c thao t¸c nµy ë chç:  
Sö dông ®¬n gi¶n.  
*
*
*
KÝch th-íc bé nhí ®-îc rót gän.  
Kh¶ n¨ng ¸p dông trªn c¸c kiÓu do ng-êi sö dông ®Þnh  
nghÜa b»ng c¸ch sö dông c¬ chÕ ®Þnh nghÜa chång to¸n tö.  
-12-  
LËp tr×nh h-íng ®èi t-îng  
1.Ph-¬ng ph¸p lËp tr×nh..................................................................................... 1  
2.Bµi to¸n quan hÖ gia ®×nh................................................................................2  
3.LËp tr×nh h-íng ®èi t-îng...............................................................................6  
3.1Mét sè kh¸i niÖm......................................................................................7  
3.2C¸c -u ®iÓm cña LTH§T......................................................................... 8  
3.3Nh÷ng øng dông cña LTH§T...................................................................9  
4.C¸c ng«n ng÷ lËp tr×nh h-íng ®èi t-îng.........................................................9  
5.Ng«n ng÷ lËp tr×nh C++  
................................................................................  
10  
-13-  
pdf 13 trang Thùy Anh 15120 Free
Bạn đang xem tài liệu "Giáo trình Lập trình hướng đối tượng với C++ - Chương 1: Lập trình hướng đối tượng, phương pháp giải quyết bài toán mới", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_huong_doi_tuong_voi_c_chuong_1_lap_trin.pdf