... NhvậycuốnsáchbaotrùmđủcácvấnđềcầnđềcậpvàđÃđợccấutrúckhá hợplý.Mỗichơngđềukếtthúcbởiphầntómtắtvàcácbàitập,thuậntiệnchoviệc họcvàthựchành. NộidungcácphầnđÃđợctrìnhbàydễhiểu,chuẩnxác,cónhiềuthídụminh hoạ. Cuốnsáchcóthểdùnglàm: -GiáotrìnhgiảngdạyvềlậptrìnhhớngđốitợngởcáctrờngĐạihọc. -SáchthamkhảovềC++chonhữngngờilậptrìnhchuyênnghiệp. Tôichorằngquyểnsáchlàrấtcóíchvàhyvọngsẽsớmđợcxuấtbảnđể phụcvụbạnđọc.XintrântrọnggiớithiệuvớibạnđọccuốnsáchLậptrìnhhớng đốitợngvớiC++,mộtsxảnphẩmlaođộngkhoahọcnghiêmtúccủatậpthểcán bộgiảngdạykhonaCôngnghệThôngtin,ĐạihọcBáchkhoaHànội. Hànội,ngày4tháng5năm1999 GS. GS. GS. GS. Nguy Nguy Nguy Nguy ễ ễ ễ ễ n n n n V V V V ă ă ă ă n n n n Ba Ba Ba Ba Khoa Khoa Khoa Khoa CNTT, CNTT, CNTT, CNTT, Đ Đ Đ Đ HBK HBK HBK HBK H H H H à à à à n n n n ộ ộ ộ ộ i i i i ... -Cónhữngngônngữlai,cóthểlậptrìnhhớngđốitợngmộtcáchđầyđủ, màcũngcóthểlậptrìnhdùngđốitợng.TurboPASCAL,C++thuộcloạinày. NgônngữCtừkhirađờiđÃsớmkhẳngđịnhđợcvịthếlàcôngcụchủyếu trongcôngnghệphầnmềm.C++pháttriểnCthànhngônngữhớngđốitợng đÃthừakếđợccácđiểmmạnhcủaCvàthíchứngvớixuhớnglậptrìnhhiệnđại. ChọnC++đểgiảngdạycũngnhlàmcôngcụpháttriểnphầnmềmlàhợplý,vì khôngnhữngnómạnh,mànódễhiểuchonhữngngờivốnquenvớilậptrình truyềnthống,nayđivàolậptrìnhhớngđốitợng.Nhvậychủđềcủacuốnsách làhoàntoànthíchhợpvớinhucầugiảngdạylậptrìnhởcáctrờngđạihọc,cũng nhvớinhucầucủanhữnglậptrìnhviênđanghànhnghề. Cuốnsáchgồm6chơngvà4phụlục -Chơng1:Lậptrìnhhớngđốitợng-phơngphápgiảiquyếtbàitoánmới -Chơng2:NhữngmởrộngcủaC++ -Chơng3:Đốitợngvàlớp -Chơng4:Địnhnghĩatoántửtrênlớp -Chơng5:Kỹthuậtthừakế -Chơng6:Khuônhình -Phụlục1:Cáckênhxuấtnhập -Phụlục2:Xửlýlỗi -Phụlục3:Bàitoánquanhệgiađình -Phụlục4:MÃchơngtrìnhbàitoánquanhệgiađình. ... NhvậycuốnsáchbaotrùmđủcácvấnđềcầnđềcậpvàđÃđợccấutrúckhá hợplý.Mỗichơngđềukếtthúcbởiphầntómtắtvàcácbàitập,thuậntiệnchoviệc họcvàthựchành. NộidungcácphầnđÃđợctrìnhbàydễhiểu,chuẩnxác,cónhiềuthídụminh hoạ. Cuốnsáchcóthểdùnglàm: -GiáotrìnhgiảngdạyvềlậptrìnhhớngđốitợngởcáctrờngĐạihọc. -SáchthamkhảovềC++chonhữngngờilậptrìnhchuyênnghiệp. Tôichorằngquyểnsáchlàrấtcóíchvàhyvọngsẽsớmđợcxuấtbảnđể phụcvụbạnđọc.XintrântrọnggiớithiệuvớibạnđọccuốnsáchLậptrìnhhớng đốitợngvớiC++,mộtsxảnphẩmlaođộngkhoahọcnghiêmtúccủatậpthểcán bộgiảngdạykhonaCôngnghệThôngtin,ĐạihọcBáchkhoaHànội. Hànội,ngày4tháng5năm1999 GS. GS. GS. GS. Nguy Nguy Nguy Nguy ễ ễ ễ ễ n n n n V V V V ă ă ă ă n n n n Ba Ba Ba Ba Khoa Khoa Khoa Khoa CNTT, CNTT, CNTT, CNTT, Đ Đ Đ Đ HBK HBK HBK HBK H H H H à à à à n n n n ộ ộ ộ ộ i i i i ...
Ngày tải lên: 05/07/2014, 16:20
... Mục l ục -329- M M M M ụ ụ ụ ụ c c c c l l l l ụ ụ ụ ụ c c c c Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 1. 1. 1. 1. L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng, ng, ng, ng, ph ph ph ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p gi gi gi gi ả ả ả ả i i i i quy quy quy quy ế ế ế ế t t t t b b b b à à à à i i i i to to to to á á á á n n n n m m m m ớ ớ ớ ớ i i i i 1.Phơngpháplậptrình 1 2.Bàitoánquanhệgiađình 2 3.Lậptrìnhhớngđốitợng 6 3.1Mộtsốkháiniệm 7 3.2CácuđiểmcủaLTHĐT 8 3.3NhữngứngdụngcủaLTHĐT 9 4.Cácngônngữlậptrìnhhớngđốitợng 9 5.NgônngữlậptrìnhC++ 10 Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 2. 2. 2. 2. C C C C á á á á c c c c m m m m ở ở ở ở r r r r ộ ộ ộ ộ ng ng ng ng c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ so so so so v v v v ớ ớ ớ ớ i i i i C C C C 1.CácđiểmkhôngtơngthíchgiữaC++vàANSIC ... 89 7.1Đặtvấnđề 89 7.2Hàmtựdobạncủamộtlớp 90 7.3Cáckiểubạnbèkhác 92 7.3.1Hàmthànhphầncủalớplàbạncủalớpkhác 92 7.3.2Hàmbạncủanhiềulớp 93 7.3.3Tấtcảcáchàmcủalớplàbạncủalớpkhác 94 7.4Bàitoánnhânmatrậnvớivector ... 165 2.1Vídụminhhoạ 165 2.2Truynhậpcácthànhphầncủalớpcơsởtừlớpdẫnxuất 167 2.3Địnhnghĩalạicácthànhphầncủalớpcơsởtronglớpdẫnxuất 168 2.4Tínhthừakếtronglớpdẫnxuất 168 2.4.1Sựtơngthíchcủađốitợngthuộclớpdẫnxuấtvớiđốitợngthuộclớp cơsở168 2.4.2Tơngthíchgiữacontrỏlớpdẫnxuấtvàcontrỏlớpcơsở...
Ngày tải lên: 05/07/2014, 16:20
Giáo trình C++ - Đại Học Bách Khoa (phần 3) pps
... -1- Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 1 1 1 1 L L L L ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng ph ph ph ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p gi gi gi gi ả ả ả ả i i i i quy quy quy quy ế ế ế ế t t t t b b b b à à à à i i i i to to to to á á á á n n n n m m m m ớ ớ ớ ớ i i i i 1. 1. 1. 1. Ph Ph Ph Ph ơ ơ ơ ơ ng ng ng ng ph ph ph ph á á á á p p p p l l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh TừnhiềunămnaychúngtađÃnghenhiềuđếnthuậtngữLậptrìnhhớngđối tợng(OOP-ObjectOrientedProgramming).Vậythựcchấtnólàgì?Đểhiểu đợcvấnđềnàychúngtabắtđầunhìnlạimộtchútlịchsửpháttriểncácphơng pháplậptrình.Vàonhữngngàyđầupháttriểncủamáytính,khicácphầnmềmcòn rấtđơngiảnchỉcỡvàichụcdònglệnh,chơngtrìnhđợcviếttuầntựvớicáccâu lệnhthựchiệntừđầuđếncuối.Cáchviếtchơngtrìnhnhthếnàygọilàphơng phápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh tuy tuy tuy tuy ế ế ế ế n n n n t t t t í í í í nh nh nh nh .Khoahọcmáytínhngàycàngpháttriển,cácphầnmềm đòihỏingàycàngphứctạpvàlớnhơnrấtnhiều.Đếnlúcnàyphơngpháplậptrình tuyếntínhtỏrakémhiệuquảvàcónhữngtrờnghợpngờilậptrìnhkhôngthể kiểmsoátđợcchơngtrình.Thếlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh c c c c ấ ấ ấ ấ u u u u tr tr tr tr ú ú ú ú c c c c (LTCT)rađời. Theocáchtiếpcậnnày,chơngtrìnhđợctổchứcthànhcácchơngtrìnhcon. Mỗichơngtrìnhconđảmnhậnxửlýmộtcôngviệcnhỏtrongtoànbộhệthống. Mỗichơngtrìnhconnàylạicóthểchianhỏthànhcácchơngtrìnhconnhỏhơn. Quátrìnhphânchianhvậytiếptụcdiễnrachođếncácchơngtrìnhconnhỏnhận đợcđủđơngiản.Ngờitagọiđólàquátrìnhlàmmịndần.Cácchơngtrìnhcon tơngđốiđộclậpvớinhau,dođócóthểphâncôngchotừngnhómđảmnhậnviết cácchơngtrìnhconkhácnhau.Ngônngữlậptrìnhthểhiệnrõnétnhấtphơng pháplậptrìnhcấutrúcchínhlàPascal.Tuynhiên,khisửdụngphơngpháplập trìnhnàyvẫncòngặpmộtkhókhănlớnlàtổchứcdữliệucủahệthốngnhthếnào trongmáytính.BởivìtheoquanđiểmcủaLTCTthì Chơngtrình=Cấutrúcdữ liệu+Giảithuật .Đểlàmđợcviệcnàyđòihỏingờilậptrìnhphảicókiếnrất vữngvềcấutrúcdữliệu.Mộtkhókhănnữagặpphảilàgiảithuậtcủachơngtrình phụthuộcrấtchặtchẽvàocấutrúcdữliệu,dovậychỉcầnmộtsựthayđổinhỏở cấutrúcdữliệucũngcóthểlàmthayđổigiảithuậtvànhvậyphảiviếtlạichơng trình. Điềunàyrõràngkhôngthểthíchhợpkhiphảixâydựngmộtdựánphầnmềm rấtlớn.Mộtphơngpháplậptrìnhmớirađờiđểkhắcphụcnhợcđiểmnàyvàđó chínhlàphơngphápl l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh h h h h ớ ớ ớ ớ ng ng ng ng đố đố đố đố i i i i t t t t ợ ợ ợ ợ ng ng ng ng (LTHĐT).Điểmcănbảncủa phơngphápnàylàthiếtkếchơngtrìnhxoayquanhdữliệucủahệthống.Nghĩa làlúcnàycácthaotácxửlýcủahệthốngđợcgắnliềnvớidữliệuvànhvậymột sựthayđổinhỏcủadữliệuchỉảnhhởngđếncácmộtsốnhỏcáchàmxửlýliên quan.Sựgắnkếtgiữadữliệuvàcáchàmxửlýtrênchúngtạorađốitợng.Mộtu điểmnữacóởphơngphápLTHĐTlàcáchtiếpcậnbàitoántrởnêngầngũivới thựctếhơn.Đểhiểurõhơnvềphơngpháplậptrìnhnày,khônggìtốthơnlà chúngtađivàomộtbàitoáncụthể,chẳnghạnbàitoánquanhệgiađình.ởđâyyêu ... Còn câuhỏinhĐốitợngcóphảilàôngnộicủaYkhông?phứctạphơnchútít.Để trảlờiđợccáccâuhỏicóquanhệxanhthếtaphảidựavàokếtquảtrảlờicủa cáccâuhỏivềcácquanhệgầngũihơn.ĐểbiếtđợcXđúnglàôngnộicủaYthì phảichỉramộtngờiZnàođómàXlàbốcủaZvàZlàbốcủaY.Nếukhôngchỉ rađợcZthìXkhôngphảilàôngnộicủaY.ViệctìmkiếmZhoàntoànđơngiản bởivìchơngtrìnhquảnlýtậpcácđốitợngconngời.HÃytìmZtrongtậpđối tợngConngời.CóthểthấycâuhỏibanđầuđÃđợcphânchiathànhhaicâuhỏi đơngiảnvớichúngmàđÃcócáchtrảlời.Tómlại,cácvấnđềcủabàitoánđÃđợc giảiquyếtkhitiếpcậntheophơngphápLTHĐT.Mộtlợiđiểmcóthểthấyngaylà bàitoánđợcphântíchrấtgầnvớithựctếvàtựnhiên. Trênđâymớichỉlàsựphântíchsơkhaibàitoándựatheophơngpháp LTHĐT.ĐểlàmhoànchỉnhđợcbàitoáncòncầnmộtsốkĩthuậtcủaLTHĐTnh tínhkếthừa,tínhđahình, ... NgônngữC++ -8- choLTHĐT.Cònđốivớicácngônngữlai(hybrid)đợcxâydựngtrêncácngôn ngữkhácbanđầuchaphảilàHĐTnhC++đợcnóiđếntrongcuốnsáchnày, vẫncónhữngngoạilệnhấtđịnhviphạmnguyêntắcđónggóidữliệu. T T T T í í í í nh nh nh nh k k k k ế ế ế ế th th th th ừ ừ ừ ừ a a a a (inheritance) (inheritance) (inheritance) (inheritance) MộtkháiniệmquantrọngcủaLTHĐTlàsựkếthừa.Sựkếthừachophép chúngtađịnhnghĩamộtlớpmớitrêncơsởcáclớpđÃtồntại,tấtnhiêncóbổsung nhữngphơngthứchaycácthànhphầndữliệumới.Khảnăngkếthừachophép chúngtasửdụnglạimộtcáchdễdàngcácmodulechơngtrìnhmàkhôngcầnmột thayđổicácmoduleđó.RõràngđâylàmộtđiểmmạnhcủaLTHĐTsovớiLTCT. T T T T í í í í nh nh nh nh đ đ đ đ a a a a h h h h ì ì ì ì nh nh nh nh (polymorphime) (polymorphime) (polymorphime) (polymorphime) Tínhđahìnhxuấthiệnkhicókháiniệmkếthừa.Giảsửchúngtacómộtkế thừalớphìnhtứgiácvàlớphìnhtamgiáckếthừatừlớphìnhđagiác(hìnhtamgiác vàtứgiácsẽcóđầyđủcácthuộctínhvàtínhchấtcủamộthìnhđagiác).Lúcnày mộtđốitợngthuộclớphìnhtamgiáchaytứgiácđềucóthểhiểurằngnólàmột hìnhđagiác.Mặtkhácvớimỗiđagiáctacóthểtínhdiệntíchcủanó.Nhvậylàm thếnàomàmộtđagiáccóthểsửdụngđúngcôngthứcđểtínhdiệntíchphùhợpvới nólàhìnhtamgiáchaytứgiác.Tagọiđólàtínhđahình. 3.2 3.2 3.2 3.2 C C C C á á á á c c c c u u u u đ đ đ đ i i i i ể ể ể ể m m m m c c c c ủ ủ ủ ủ a a a a LTH LTH LTH LTH Đ Đ Đ Đ T T T T LTHĐTđemlạimộtsốlợithếchongờithiếtkếlẫnngờilậptrình.Cáchtiếp cậnhớngđốitợnggiảiquyếtđợcnhiềuvấnđềtồntạitrongquátrìnhpháttriển phầnmềmvàtạorađợcnhữngphầnmềmcóđộphứctạpvàchấtlợngcao. Phơngphápnàymởramộttriểnvọngtolớnchongờilậptrình.Nhữnguđiểm chínhcủaLTHĐTlà: 1.Thôngquanguyênlýkếthừa,chúngtacóthểloạibỏđợcnhữngđoạn chơngtrìnhlặplạitrongquátrìnhmôtảcáclớpvàcóthểmởrộngkhả năngsửdụngcủacáclớpđÃxâydựngmàkhôngcầnphảiviếtlại. 2.Chơngtrìnhđợcxâydựngtừnhữngđơnthể(đốitợng)traođổivới nhaunênviệcthiếtkếvàlậptrìnhsẽđợcthựchiệntheoquytrìnhnhất địnhchứkhôngphảidựavàokinhnghiệmvàkỹthuậtnhtrớcnữa.Điều nàyđảmbảorútngắnđợcthờigianxâydựnghệthốngvàtăngnăngsuất laođộng. 3.Nguyênlýđónggóihaychegiấuthôngtingiúpngờilậptrìnhtạorađợc nhữngchơngtrìnhantoànkhôngbịthayđổibởinhữngđoạnchơng trìnhkhác. 4.Cóthểxâydựngđợcánhxạcácđốitợngcủabàitoánvàođốitợng chơngtrình. 5.Cáchtiếpcậnthiếtkếđặttrọngtâmvàodữliệu,giúpchúngtaxâydựng đợcmôhìnhchitiếtvàdễdàngcàiđặthơn. ...
Ngày tải lên: 05/07/2014, 16:20
Giáo trình C++ - Đại Học Bách Khoa (phần 4) doc
... //khôngđợckhaibáo i } 3.3 3.3 3.3 3.3 To To To To á á á á n n n n t t t t ử ử ử ử ph ph ph ph ạ ạ ạ ạ m m m m vi vi vi vi :: :: :: :: Bìnhthờng,biếncụcbộchelấpbiếntoàncụccùngtên.Chẳnghạn: #include <iostream.h> int x; main() { int x= 10; //xcụcbộ cout<<x<< \n ; //xcụcbộ } CácmởrộngcủaC++ -18- 2.3 2.3 2.3 2.3 Đọ Đọ Đọ Đọ c c c c d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u t t t t ừ ừ ừ ừ thi thi thi thi ế ế ế ế t t t t b b b b ị ị ị ị v v v v à à à à o o o o chu chu chu chu ẩ ẩ ẩ ẩ n n n n (b (b (b (b à à à à n n n n ph ph ph ph í í í í m m m m ) ) ) ) cin cin cin cin Nếunhcout cout cout cout dùngđểchỉthiếtbịrachuẩn,thìcin cin cin cin đợcdùngđểchỉmột thiếtbịvàochuẩn.Mộtcáchtơngtự,toántử>>đợcdùngkèmvớicin cin cin cin đểnhập vàocácgiátrị;haicâulệnh int n; cin >>n; yêucầuđọccáckýtựtrênbànphímvàchuyểnchúngthànhmộtsốnguyênvà gánchobiếnn. Giốngnhcout cout cout cout và << ,cóthểnhậpnhiềugiátrịcùngkiểuhaykháckiểu bằngcáchviếtliêntiếptêncácbiếncầnnhậpgiátrịcùngvới >> ngaysaucin cin cin cin . Chẳnghạn: int n; float p; char c; cin >> c >> n >>p; Cóthểsửdụngtoántử >> đểnhậpdữliệuchocácbiếncókiểu char char char char ,int int int int , float float float float ,double double double double vàchar char char char *. Giốngvớihàm scanf() ,cin cin cin cin tuântheomộtsốquiớcdùngtrongviệcphân tíchcáckýtự: (i) Cácgiátrịsốđợcphâncáchbởi:SPACE,TAB,CR,LF.Khigặpmộtký tựkhônghợplệ(dấu.đốivớisốnguyên,chữcáiđốivớisố, ... return<bien co pham vi toancuc>; } Trongtrờnghợpnàybiểuthứcđợctrảlạitrongcâulệnhreturn return return return phảilàtên củamộtbiếnxácđịnhtừbênngoàihàm,bởivìchỉkhiđómớicóthểsửdụngđợc giátrịcủahàm.Khitatrảvềmộtthamchiếuđếnmộtbiếncụcbộkhaibáobên tronghàm,biếncụcbộnàysẽbịmấtđikhikếtthúcthựchiệnhàmvàdovậy,tham chiếucủahàmcũngkhôngcòncóýnghĩanữa. Khigiátrịtrảvềcủahàmlàthamchiếu,tacóthểgặpcáccâulệnhgánkỳdị trongđóvếtráilàmộtlờigọihàmchứkhôngphảilàtêncủamộtbiến.Điềunày hoàntoànhợplý,bởilẽbảnthânhàmđócógiátrịtrảvềlàmộtthamchiếu.Nói cáchkhác,vếtráicủalệnhgán(biểuthứcgán)cóthểlàlờigọiđếnmộthàmcógiá trịtrảvềlàmộtthamchiếu. Xétvídụsauđây: V V V V í í í í d d d d ụ ụ ụ ụ 2.11 2.11 2.11 2.11 /*fr.cpp*/ /*fr.cpp*/ /*fr.cpp*/ /*fr.cpp*/ #include<iostream.h> #include<conio.h> inta[5]; ... CácmởrộngcủaC++ -38- cin >>taille; for(nbloc=1;;nbloc++) { adr=newint [taille]; cout<<"Capphatbloc so : "<<nbloc<<"\n"; } } voidoutof() //hàmđợcgọikhithiếubộnhớ { cout<<"Het bo nho-Ketthuc\n"; exit(1); } 9. 9. 9. 9. T T T T ó ó ó ó m m m m t t t t ắ ắ ắ ắ t t t t 9.1 9.1 9.1 9.1 Ghi Ghi Ghi Ghi nh nh nh nh ớ ớ ớ ớ C++làmộtsựmởrộngcủaC(superset),dođócóthểsửdụngmộtchơng trìnhbiêndịchC++đểdịchvàthựchiệncácchơngtrìnhnguồnviếtbằngC. Cyêucầucácchúthíchnằmgiữa/*và*/.C++cònchophéptạomộtchú thíchbắtđầubằng//chođếnhếtdòng. C++chophépkhaibáokhátuỳý.Thậmchícóthểkhaibáobiếntrongphần khởitạocủacâulệnhlặpfor. C++chophéptruyềnthamsốchohàmbằngthamchiếu.Điềunàytơngtự nhtruyềnthambiếnchochơngtrìnhcontrongngônngữPASCAL.Tronglờigọi hàmtadùngtênbiếnvàbiếnđósẽđợctruyềnchohàmquathamchiếu.Điềuđó chophépthaotáctrựctiếptrênbiếnđợctruyềnchứkhôngphảigiántiếpquabiến trỏ. Toántửnew new new new vàdelete delete delete delete trongC++đợcdùngđểquảnlýbộnhớđộngthayvì cáchàmcấpphátđộngcủaC. C++chophépngờiviếtchơngtrìnhmôtảcácgiátrịngầmđịnhchocác thamsốcủahàm,nhờđóhàmcóthểđợcgọivớimộtdanhsáchcácthamsố khôngđầyđủ. Toántử:: :: :: :: chophéptruynhậpbiếntoàncụckhiđồngthờisửdụngbiếncục bộvàtoàncụctrùngtên. ...
Ngày tải lên: 05/07/2014, 19:20
Giáo trình C++ Đại Học Bách Khoa (phần 5) pdf
... NgônngữC++ -41- dữliệukhôngquantrọngđốivớingờisửdụng.Vớimộtđốitợngđiểm, ngờitachỉquantâmđếnviệccóthểthựchiệnđợcthaotácgìtrênnómà khôngcầnbiếtcácthaotácđóđợcthựchiệnnhthếnào,cũngnhđiềugì xảyrabêntrongbảnthânđốitợngđó.Tathờngnóiđólàsựtrừutợng hoádữliệu(khicácchitiếtcàiđặtcụthểđợcgiấuđi). Đónggóicónhiềulợiíchgópphầnnângcaochấtlợngcủachơng trình. Nólàmchocôngviệcbảotrìchơngtrìnhthuậnlơihơnrấtnhiều:một sựthayđổicấutrúccủamộtđốitợngchỉảnhhởngtớibảnthânđốitợng; ngờisửdụngđốitợngkhôngcầnbiếtđếnthayđổinày(vớilậptrìnhcấu trúcthìngờilậptrìnhphảitựquảnlýsựthayđổiđó).Chẳnghạncóthể biểudiễntoạđộmộtđiểmdớidạngsốthực,khiđóchỉcóngờithiếtkế đốitợngphảiquantâmđểsửalạiđịnhnghĩacủađốitợngtrongkhiđó ngờisửdụngkhôngcầnhaybiếtvềđiềuđó,miễnlànhữngthayđổiđó khôngtácđộngđếnviệcsửdụngđốitợngđiểm. Tơngtựnhvậy,tacóthểbổsungthêmthuộctínhmàuvàmộtsốthao táclênmộtđốitợngđiểm,đểcóđợcmộtđốitợngđiểmmàu.Rõrànglà đónggóichophépđơngiảnhoáviệcsửdụngmộtđốitợng. Tronglậptrìnhhớngđốitợng,đónggóichophépdữliệucủađối tợngđợcchelấpkhinhìntừbênngoài,nghĩalànếungờidùngmuốntác độnglêndữliệucủađốitợngthìphảigửiđếnđốitợngcácthông điệp(message).ởđâycácphơngthứcđóngvaitròlàgiaodiệnbắtbuộc giữacácđốitợngvàngờisửdụng.Tacónhậnxét: Lờigọiđếnmột phơngthứclàtruyềnmộtthôngbáođếnchođốitợng . Cácthôngđiệpgửitớiđốitợngnàosẽgắnchặtvớiđốitợngđóvàchỉ đốitợngnàonhậnđợcthôngđiệpmớiphảithựchiệntheothôngđiệpđó; chẳnghạncácđốitợngđiểmđộclậpvớinhau,vìvậythôngđiệpthayđổi toạđộđốitợngđiểmpchỉlàmảnhhởngđếncácthànhphầntoạđộtrong pchứkhôngthểthayđổiđợcnộidungcủamộtđốitợngđiểmqkhác. Môtảđố i tợngđ i ểm{ //dữliệu intx,y; //phơngthức voidinit(intox,intoy); voidmove(intdx,intdy); voiddisplay(); }; Hình3.1Môtảcácđốitợngđiểm ... NgônngữC++ -51- Tấtnhiên,theonguyêntắcđónggói,khônggántrịchocácthànhphần dữliệucủađốitợngmộtcáchtrựctiếp. p.x = 2; p.y = 4; Hơnnữa,khôngthểthựchiệnlờigọitớihàmthànhphầnnếukhôngchỉ rõđốitợngđợcthamchiếu.Chỉthị: init(5,2); tronghàm main sẽcóthểgâylỗibiêndịchnếutrongchơngtrình khôngcóhàmtựdovớitên init . 2.1.5 2.1.5 2.1.5 2.1.5 Ph Ph Ph Ph ạ ạ ạ ạ m m m m vi vi vi vi l l l l ớ ớ ớ ớ p p p p Phạmvichỉraphầnchơngtrìnhtrongđócóthểtruyxuấtđếnmộtđối tợngnàođó.TrongCcóbốnkiểuphạmviliênquanđếncáchthứcvàvịtrí khaibáobiến:phạmvikhốilệnh,phạmvitệp,phạmvichơngtrìnhvà phạmvihàmnguyênmẫu,trongđóthờngdùngnhấtlàphạmvitoàncục (tệp,chơngtrình)vàphạmvicụcbộ(khốilệnh,hàm).Mụcđíchcủaphạm vilàđểkiểmsoátviệctruyxuấtđếncácbiến/hằng/hàm. Đểkiểmsoáttruynhậpđếncácthànhphần(dữliệu,hàm)củacáclớp, C++đarakháiniệmphạmvilớp.Tấtcảcácthànhphầncủamộtlớpsẽ đợccoilàthuộcphạmvilớp;trongđịnhnghĩahàmthànhphầncủalớpcó thểthamchiếuđếnbấtkỳmộtthànhphầnnàokháccủacùnglớpđó.Tuân theoýtởngđónggói,C++coitấtcảcácthànhphầncủamộtlớpcóliênhệ vớinhau.Ngoàira,C++cònchophépmởrộngphạmvilớpđếncáclớpcon cháu,bạnbèvàhọhàng(Xemthêmchơng5-Kếthừavàcácmụctiếpsau đểhiểurõhơn). 2.1.6 2.1.6 2.1.6 2.1.6 T T T T ừ ừ ừ ừ kho kho kho kho á á á á x x x x á á á á c c c c đị đị đị đị nh nh nh nh thu thu thu thu ộ ộ ộ ộ c c c c t t t t í í í í nh nh nh nh truy truy truy truy xu xu xu xu ấ ấ ấ ấ t t t t Trongphầnnàytanóitớivaitròcủahaitừkhoáprivate private private private vàpublic public public public - dùngđểxácđịnhthuộctínhtruyxuấtcủacácthànhphầnlớp. Trongđịnhnghĩacủalớptacóthểxácđịnhkhảnăngtruyxuấtthành phầncủamộtlớpnàođótừbênngoàiphạmvilớp.Tronglớppointcóhai thànhphầndữliệuvàbathànhphầnhàm.Cácthànhphầndữliệuđợckhai báovớinhÃnlàprivate, private, private, private, còncáchàmthànhvớinhÃnpublic public public public .private private private private và public public public public làcáctừkhoáxácđịnhthuộctínhtruyxuất.Mọithànhphầnđợc liệtkêtrongphầnpublic public public public đềucóthểtruyxuấttrongbấtkỳhàmnào.Những ... NgônngữC++ -42- Sovớilậptrìnhhớngđốitợngthuầntuý,cáccàiđặtcụth của ối tợngtrongC++linhđộnghơnmộtchút,bằngcáchchophépchỉchedấu mộtbộphậndữliệucủađốitợngvàmởrộnghơnkhảnăngtruynhậpđến cácthànhphầnriêngcủađốitợng.Kháiniệmlớpchínhlàcơsởchocác linhđộngnày. Lớplàmộtmôtảtrừutợngcủanhómcácđốitợngcócùngbảnchất. Trongmộtlớpngờitađaracácmôtảvềtínhchấtcủacácthànhphầndữ liệu,cáchthứcthaotáctrêncácthànhphầnnày(hànhvicủacácđốitợng), ngợclạimỗimộtđốitợnglàmộtthểhiệncụthểchonhữngmôtảtrừu tợngđó.Trongcácngônngữlậptrình,lớpđóngvaitròmộtkiểudữliệu đợcngờidùngđịnhnghĩavàviệctạoramộtđốitợngđợcvínhkhai báomộtbiếncókiểulớp. 2. 2. 2. 2. L L L L ớ ớ ớ ớ p p p p 2.1 2.1 2.1 2.1 Khai Khai Khai Khai b b b b á á á á o o o o l l l l ớ ớ ớ ớ p p p p Từquanđiểmcủalậptrìnhcấutrúc,lớplàmộtkiểudữliệutựđịnh nghĩa.Tronglậptrìnhhớngđốitợng,chơngtrìnhnguồnđợcphânbố trongkhaibáovàđịnhnghiÃcủacáclớp. Sauđâylàmộtvídụđiểnhìnhvềcúphápkhaibáolớp.Kinhnghiệm chothấymọikiểukhaibáokhácđềucóthểchuẩnhoáđểđavềdạngnày. Cácchitiếtliênquanđếnkhaibáolớpsẽlầnlợtđợcđềcậpđếntrong cácphầnsau.Đểdễhìnhdungxétmộtvídụvềkhaibáolớpđiểmtrongmặt phẳng.Trongvídụnàytacóđềcậpđếnmộtvàikhíacạnhliênquanđến khaibáolớp,đốitợngvàsửdụngchúng. class class class class <tênlớp>{ private: private: private: private: <khaibáocácthànhphầnriêngtrongtừngđốitợng> public: public: public: public: <khaibáocácthànhphầncôngcộngcủatừngđối tợng> }; <địnhnghiÃcủacáchàmthànhphầnchađợcđịnh nghĩabêntrongkhaibáolớp> ...
Ngày tải lên: 05/07/2014, 19:20
Giáo trình C++ - Đại Học Bách Khoa (phần 6) pps
... Địnhngh ĩ atoán t ửtrên l ớp -155- z1=6 Goifloat()chocomplex Goifloat()chocomplex z2=8 Khigặpbiểuthứcdạng a+3 vớiphéptoán+đợcđịnhnghĩavớicác toánhạngcókiểulớp complex vàsốthực,chơngtrìnhdịchtrớchếtđitìm xemđÃcómộttoántử+đợcđịnhnghĩachồngtơngứngvớicáckiểudữ liệucủacáctoánhạngnàyhaycha.Trongtrờnghợpnàyvìkhôngcó,nên chơngtrìnhdịchsẽchuyểnđổikiểudữliệucủacáctoánhạngđểphùhợp vớimộttrongsốcácphéptoánđÃđịnhnghĩa,cụthểlàchuyểnđổitừđối tợng a sang float float float float . 6.2 6.2 6.2 6.2 H H H H à à à à m m m m to to to to á á á á n n n n t t t t ử ử ử ử chuy chuy chuy chuy ể ể ể ể n n n n đổ đổ đổ đổ i i i i ki ki ki ki ể ể ể ể u u u u c c c c ơ ơ ơ ơ s s s s ở ở ở ở sang sang sang sang ki ki ki ki ể ể ể ể u u u u l l l l ớ ớ ớ ớ p p p p Trởlạichơngtrình complex6.cpp, tacóthểthựchiệncácchỉthịkiểu nh: complexe=10; hoặc a=1; Chỉthịthứnhấtnhằmtạomộtđốitợngtạmthờicókiểu complex tơngứngvớiphầnthựcbằng10,phầnảobằng0rồisaochépsangđối tợng e mớiđợckhaibáo.Trongchỉthịthứhai,cũngcómộtđốitợngtạm thờikiểu complex đợctạoravànộidungcủanó(phầnthực1,phầnảo0) đợcgáncho a .Nhvậy,trongcảhaitrờnghợpđềuphảigọitớihàmthiết lậpmộtthamsốcủalớp complex . Tơngtự,nếucóhàm fct() vớikhaibáo: fct(complex) thìlờigọi fct(4) sẽđòihỏiphảichuyểnđổitừgiátrịnguyên4thànhmộtđốitợngtạm thờicókiểu complex ,đểtruyềncho fct() .Sauđâylàchơngtrìnhnhận đợcdosửađổitừ complex6.cpp . V V V V í í í í d d d d ụ ụ ụ ụ 4.14 4.14 4.14 4.14 /*complex9.cpp*/ /*complex9.cpp*/ /*complex9.cpp*/ /*complex9.cpp*/ ... Địnhngh ĩ atoán t ửtrên l ớp -122- Tuynhiênviệcdùngthamchiếunhlàgiátrịtrảvềcủahàmtoántử,có nhiềuđiềuđángnói.Biểuthứcnằmtronglệnh return return return return bắtbuộcphảitham chiếuđếnmộtvùngnhớtồntạingaycảkhithựchiệnxongbiểuthứctứclà khihàmtoántửkếtthúcthựchiện.Vùngnhớấycóthểlàmộtbiếnđợccấp tĩnhstatic static static static (cácbiếntoàncụchaybiếncụcbộstatic), static), static), static), mộtbiếnthểhiện (mộtthànhphầndữliệu)củamộtđốitợngnàođóởngoàihàm.Bạnđọccó thểxemchơngtrình vecmat3.cpp trongchơng3đểhiểurõhơn.Vấnđề tơngtựcũngđợcđềcậpkhigiátrịtrảvềcủahàmtoántửlàđịachỉ;trong trờnghợpnày,mộtđốitợngđợctạoranhờcấpphátđộngtrongvùng nhớheapdùngđộclậpvớivùngnhớngănxếpdùngđểcấpphátbiến,đối tợngcụcbộtrongchơngtrình,dovậyvẫncònlulạikhihàmtoántửkết thúccôngviệc. Hàmtoántửcũngcóthểtrảvềkiểuvoidkhiảnhhởngchỉtácđộng lênmộttrongcáctoánhạngthamgiabiểuthức.Xemđịnhnghĩacủahàm đảodấusốphứctrongvídụsau: V V V V í í í í d d d d ụ ụ ụ ụ 4.5 4.5 4.5 4.5 /*complex5.cpp*/ /*complex5.cpp*/ /*complex5.cpp*/ /*complex5.cpp*/ #include<iostream.h> #include<conio.h> #include<math.h> classcomplex { floatreal,image; public: complex(floatr=0,float i =0) { real = r; image = i; } voiddisplay() { cout<<real<<(image>=0?'+':'-')<<"j*"<<fabs(image)<<endl ; } /*Hàmđảodấuchỉtácđộnglêntoánhạng,khôngsửdụngđợctrongcác biểuthức*/ voidoperator-() { ... Địnhngh ĩ atoán t ửtrên l ớp -112- c = a+b; trongvídụtrênđợcchơngtrìnhdịchhiểulà: c = a.operator+(b); Nh Nh Nh Nh ậ ậ ậ ậ n n n n x x x x é é é é t t t t 7.Thựcracáchviếta+bchỉlàmộtquyớccủachơngtrìnhdịchchophép ngờisửdụngviếtgọnlại,nhờđócảmthấytựnhiênhơn. 8.Hàmtoántử operator+ phảicóthuộctínhpublic public public public vìnếukhôngchơng trìnhdịchkhôngthểthựchiệnđợcnóởngoàiphạmvilớp. 9.Tronglờigọi a.operator+(b) , a đóngvaitròcủathamsốngầmđịnhcủa hàmthànhphầnvà b làthamsốtờngminh.Sốthamsốtờngminh chohàmtoántửthànhphầnluôníthơnsốngôicủaphéptoánlà1 vìcómộtthamsốngầmđịnhlàđốitợnggọihàmtoántử. 10.Chơngtrìnhdịchsẽkhôngthểhiểuđợcbiểuthức 3+a vìcáchviết tơngứng 3.operator(a) khôngcóýnghĩa.Đểgiảiquyếttìnhhuống nàytadùnghàmbạnđểđịnhnghĩahàmtoántử. 2.2 2.2 2.2 2.2 H H H H à à à à m m m m to to to to á á á á n n n n t t t t ử ử ử ử l l l l à à à à h h h h à à à à m m m m b b b b ạ ạ ạ ạ n n n n Chơngtrình complex2.cpp đợcpháttriểntừ complex1.cpp bằngcáchthêm hàmtoántửcộngthêmmộtsốthực float float float float vàophầnthựccủamộtđốitợng complex ,đợcbiểuthịbởiphépcộngvớisốthực float float float float làtoánhạngthứnhất, cònđốitợng complex làtoánhạngthứhai.Trongtrờnghợpnàykhôngthể dùngphépcộngnhhàmthànhphầnvìthamsốthứnhấtcủahàmtoántử khôngcònlàmộtđốitợng. V V V V í í í í d d d d ụ ụ ụ ụ 4.2 4.2 4.2 4.2 /*complex2.cpp*/ /*complex2.cpp*/ /*complex2.cpp*/ /*complex2.cpp*/ #include<iostream.h> #include<conio.h> #include<math.h> classcomplex { floatreal,image; public: complex(floatr=0,float i =0) { real = r; image = i; ...
Ngày tải lên: 05/07/2014, 19:20
Đồ án thi công Đúc bê tông cốt thép toàn khối 1 công trình(Đề9) Đại học bách khoa TPHCM
Ngày tải lên: 09/03/2015, 19:46
GIÁO ÁN TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐƠN VỊ ĐO ÁP SUẤT pdf
... diễn các quá trình trên đồ thị p - v TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM 10 Biểu diễn các quá trình trên đồ thị T - s TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM Quá trình đa biến pv n = const 21 12 ; n pv pv 1 21 12 ; n vp vp 1 11 2 ... t 1 ), (J/kg) 1 2 v12 T T lncsss v = const 22 11 pT pT TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM Ví dụ 1 Ví dụ 2 TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM 3 Mối quan hệ giữa thành phần khối lượng g i và thành ... 650 kJ. Trong quá trình giãn nở nội năng của khối khí giảm đi một lượng là 255 kJ. Xác định nhiệt lượng trao đổi và độ biến thiên nhiệt độ của quá trình. TRƯỜNG ĐẠI HỌC BÁCH KHOA TPHCM p = const 22 11 vT vT Công...
Ngày tải lên: 30/03/2014, 06:20
Giáo trình Toán ứng dụng I - Đại học Bách Khoa Hà Nội
... Biện luận tính chất điểm gián đoạn của hàm số sau theo a 0, 0, 1 sin xa x x xf af 0 af 0 VÔ CÙNG BÉ 0lim 0 x xx Đại lượng (x) – vô cùng bé (VCB) khi ... C(x)(x): VCB (x) VCB, C(x) bò chaën BT: xx x sin1sinlim VÍ DỤ 2/ Chứng minh phương trình sau có ít nhất 1 nghiệm âm xx 1 5 1/ Tìm a, b để hàm số sau liên tục trên R 1, 10, 0,1 2 xx xbax xx xf f ... tắc ngắt bỏ VCB cấp cao: (x), (x) – tổng VCB khác cấp lim / = lim (tỷ số hai VCB cấp thấp 1 của tử & mẫu) VD: 2 3 0 1ln 2cosln lim x xx x xx xxx x 2sin tg322sin lim 3 22 0 0& iff~ ,~ ,~ xxgf axxg axxf Thay...
Ngày tải lên: 12/09/2012, 16:20
GIÁO TRÌNH MÔN ĐỘC HỌC MÔI TRƯỜNG ĐẠI HỌC BÁCH KHOA 17 CHƯƠNG 2 NGUYÊN LÝ CỦA ðỘC HỌC
... Phản ứng chống oxy hóa của vitamin E, C 17 CHƯƠNG 2 NGUYÊN LÝ CỦA ðỘC HỌC 2.1. Các nguyên tắc chung trong nghiên cứu ñộc học 2.1.1. Hai khả năng gây tác ñộng của ñộc chất. - ðộc chất ... hấp thụ qua da của ñộc chất Có nhiều yếu tố ảnh hưởng ñến hấp thụ ñộc chất qua da như: cấu trúc hóa học của ñộc chất, yếu tố môi trường, ñộ dày mỏng của da, tốc ñộ dòng máu của huyết thanh. ... chuyển ion ngăn cản quá trình vận chuyển ion của tế bào thần kinh. Ví dụ một số chất ñộc thần kinh tác dụng với gốc cacbocyl của kênh ngăn chặn quá trình vận chuyển ion của kênh hoặc làm tăng...
Ngày tải lên: 24/04/2014, 16:11
Giáo trình Cơ sở tạo hình - Trường Đại học Bách Khoa Đà Nẵng
... TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ NẴNG LÊ MINH SƠN GIÁO TRÌNH CƠ SỞ TẠO HÌNH – DÀNH CHO CHUYÊN NGÀNH KIẾN TRÚC 4 nào đó gắn chúng lại với nhau. Đó chính là sự lien kết của các trường thị lực của các ... TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ NẴNG LÊ MINH SƠN GIÁO TRÌNH CƠ SỞ TẠO HÌNH – DÀNH CHO CHUYÊN NGÀNH KIẾN TRÚC 17 theo dõi quá trình tạo ra kiệt tác này. Hoá ra là những kích thước cơ bản của ngôi ... (rõ) Hình III-1d TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẦ NẴNG LÊ MINH SƠN GIÁO TRÌNH CƠ SỞ TẠO HÌNH – DÀNH CHO CHUYÊN NGÀNH KIẾN TRÚC 47 - Nếu lấy điểm giữa của các mặt bên của nhị thập diện (đa diện...
Ngày tải lên: 16/10/2012, 11:26
Thực trạng xây dựng và khai thác Bộ máy tra cứu tin của Thư viện và Mạng thông tin Trường Đại Học Bách Khoa Hà Nội
... Trờng Đại Học Bách Khoa Hà Nội. Chơng 2: Thực trạng Bộ máy tra cứu tin của Th viện và Mạng thông tin Trờng Đại Học Bách Khoa Hà Nội 2.1 Khái quát về Bộ máy tra cứu tin 2.1.1 Định nghĩa Bộ máy ... tin Trờng Đại Học Bách Khoa Hà Nội góp phần đào tạo nguồn nhân lực khoa học kỹ thuật chất lợng cao của Đất nớc 1.1 Giới thiệu khái quát về Trờng Đại Học Bách Khoa Hà Nội văn cao học Bên cạnh ... đánh giá về Bộ máy tra cứu tin tại Th viện và Mạng thông tin Trờng Đại Học Bách Khoa Hà Nội Qua tìm hiểu về Bộ máy tra cứu tin của Th viện và Mạng thông tin Trờng Đại Học Bách Khoa Hà Nội,...
Ngày tải lên: 20/12/2012, 16:35
Giáo trình kỹ thuật điện cho sinh viên khối kỹ thuật đại học bách khoa hà nội
Ngày tải lên: 17/12/2013, 20:05