Giáo trình C++ - Đại Học Bách Khoa (phần 4) doc

29 758 5
Giáo trình C++ - Đại Học Bách Khoa (phần 4) doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

-13- Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 2 2 2 2 Nh Nh Nh Nh ữ ữ ữ ữ ng ng ng ng m m m m ở ở ở ở r r r r ộ ộ ộ ộ ng ng ng ng c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ Mụcđíchchơngnày: 1. GiớithiệunhữngđiểmkhácbiệtchủyếugiữaCvàC++ 2. CácđiểmmớicủaC++sovớiC(nhữngvấnđềcơbảnnhất) 1. 1. 1. 1. C C C C á á á á c c c c đ đ đ đ i i i i ể ể ể ể m m m m kh kh kh kh ô ô ô ô ng ng ng ng t t t t ơ ơ ơ ơ ng ng ng ng th th th th í í í í ch ch ch ch gi gi gi gi ữ ữ ữ ữ a a a a C++ C++ C++ C++ v v v v à à à à ANSI ANSI ANSI ANSI C C C C 1.1 1.1 1.1 1.1 Đị Đị Đị Đị nh nh nh nh ngh ngh ngh ngh ĩ ĩ ĩ ĩ a a a a h h h h à à à à m m m m Trongđịnhnghĩahàm,ANSICchophéphaikiểukhaibáodòngtiêuđềcủa hàm,trongkhiđóC++chỉchấpnhậnmộtcách: 1.2 1.2 1.2 1.2 Khai Khai Khai Khai b b b b á á á á o o o o h h h h à à à à m m m m nguy nguy nguy nguy ê ê ê ê n n n n m m m m ẫ ẫ ẫ ẫ u u u u TrongANSIC,khisửdụngmộthàmchađợcđịnhnghĩatrớcđótrong cùngmộttệp,tacóthể: 3. khôngcầnkhaibáo(khiđóngầmđịnhgiátrịtrảvềcủahàmlàint) 4. chỉcầnkhaibáotênhàmvàgiátrịtrảvề,khôngcầndanhsáchkiểucủa cácthamsố. 5.khaibáohàmnguyênmẫu. VớiC++,chỉcóphơngphápthứ3làchấpnhậnđợc.Nóicáchkhác,mộtlời gọihàmchỉđợcchấpnhậnkhitrìnhbiêndịchbiếtđợckiểucủacácthamsố, kiểucủagiátrịtrảvề.Mỗikhitrìnhbiêndịchgặpmộtlờigọihàm,nósẽsosánh cáckiểucủacácđốisốđợctruyềnvớicácthamsốhìnhthứctơngứng.Trong trờnghợpcósựkhácnhau,cóthểthựchiệnmộtsốchuyểnkiểutựđộngđểcho hàmnhậnđợccódanhsáchcácthamsốđúngvớikiểuđãđợckhaibáocủahàm. Tuynhiênphảituântheonguyêntắcchuyểnkiểutựđộngsauđây: char char char char > int int int int > longint longint longint longint > float float float float > double double double double V V V V í í í í d d d d ụ ụ ụ ụ 2.1 2.1 2.1 2.1 doublefexple(int,double) /*khaibáohàmfexple*/ /*cảCvàC++chophép*/ double fexple(intu,double v) int u; double v; {} /*C++khôngcókhaibáokiểunày*/ double fexple(u,v) int u; double v; {} CácmởrộngcủaC++ -14- main(){ int n; char c; double z,res1,res2,res3; res1 = fexple(n,z); /*khôngcóchuyểnđổikiểu*/ res2 = fexple(c,z); /*cóchuyểnđổ i kiểu,từchar(c)thànhint*/ res3 = fexple(z,n); /*cóchuyểnđổ i kiểu,từdouble(z)thànhintvà t ừint(n) thànhdouble*/ } TrongC++bắtbuộcphảicótừkhoávoid void void void trớctêncủahàmtrongphầnkhai báođểchỉrằnghàmkhôngtrảvềgiátrị.Trờnghợpkhôngcó,trìnhbiêndịch ngầmhiểukiểucủagiátrịtrảvềlàint int int int vànhthếtrongthânhàmbắtbuộcphảicó câulệnhreturn return return return .Điềunàyhoàntoànkhôngcầnthiếtđốivớimôtảtrongngônngữ C. Thựcra,cáckhảnăngvừamôtảkhônghoàntoànlàđiểmkhôngtơngthích giữaCvàC++màđóchỉlàsựgạnlọccácđiểmyếuvàhoànthiệncácmặtcòn chahoànchỉnhcủaC. 1.3 1.3 1.3 1.3 S S S S ự ự ự ự t t t t ơ ơ ơ ơ ng ng ng ng th th th th í í í í ch ch ch ch gi gi gi gi ữ ữ ữ ữ a a a a con con con con tr tr tr tr ỏ ỏ ỏ ỏ void void void void v v v v à à à à c c c c á á á á c c c c con con con con tr tr tr tr ỏ ỏ ỏ ỏ kh kh kh kh á á á á c c c c TrongANSIC,kiểuvoid void void void * * * * tơngthíchvớicáckiểutrỏkháccảhaichiều. Chẳnghạnvớicáckhaibáosau: void*gen; int*adj; haiphépgánsauđâylàhợplệtrongANSIC: gen = adj; adj = gen; Thựcra,haicâulệnhtrênđãkèmtheocácphépchuyểnkiểungầmđịnh: int* int* int* int* > void* void* void* void* đốivớicâulệnhthứnhất,và void* void* void* void* > int* int* int* int* đốivớicâulệnhthứhai. CácmởrộngcủaC++ -15- TrongC++,chỉcóchuyểnđổikiểungầmđịnhtừmộtkiểutrỏtuỳýthành void* void* void* void* làchấpnhậnđợc,cònmuốnchuyểnđổingợclại,taphảithựchiệnchuyển kiểutờngminhnhcáchviếtsauđây: gen = adj; adj = (int*)gen; 2. 2. 2. 2. C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng v v v v à à à à o/ra o/ra o/ra o/ra m m m m ớ ớ ớ ớ i i i i c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ Cáctiệníchvào/ra(hàmhoặcmacro)củathviệnCchuẩnđềucóthểsửdụng trongC++.Đểsửdụngcáchàmnàychúngtachỉcầnkhaibáotệptiêuđềtrongđó cóchứakhaibáohàmnguyênmẫucủacáctiệníchnày. Bêncạnhđó,C++còncàiđặtthêmcáckhảnăngvào/ramớidựatrênhaitoán tử<<(xuất)và>>(nhập)vớicácđặctínhsauđây: 6. đơngiảntrongsửdụng 7.cókhảnăngmởrộngđốivớicáckiểumớitheonhucầucủangờilập trình. Trongtệptiêuđề iostream.h ngờitađịnhnghĩahaiđốitợngcout cout cout cout vàcin cin cin cin tơngứngvớihaithiếtbịchuẩnra/vàođợcsửdụngcùngvới<<và>>.Thông thờngtahiểucout cout cout cout làmànhìnhcòncin cin cin cin làbànphím. 2.1 2.1 2.1 2.1 Ghi Ghi Ghi Ghi d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u l l l l ê ê ê ê n n n n thi thi thi thi ế ế ế ế t t t t b b b b ị ị ị ị ra ra ra ra chu chu chu chu ẩ ẩ ẩ ẩ n n n n (m (m (m (m à à à à n n n n h h h h ì ì ì ì nh) nh) nh) nh) cout cout cout cout Trongphầnnàytaxemxétmộtsốvídụminhhoạcáchsửdụngcout cout cout cout và<< đểđathôngtinramànhình. V V V V í í í í d d d d ụ ụ ụ ụ 2.2 2.2 2.2 2.2 Chơngtrìnhsauminhhoạcáchsửdụngcout cout cout cout đểđaramànhìnhmộtxâuký tự. #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ main() { cout << "Welcome C++"; } WelcomeC++ << làmộttoántửhaingôi,toánhạngởbêntráimôtảnơikếtxuấtthôngtin (cóthểlàmộtthiếtbịngoạivichuẩnhaylàmộttậptin),toánhạngbênphảicủa << làmộtbiểuthứcnàođó.Trongchơngtrìnhtrên,câulệnh cout <<"Welcome C++" đaramànhìnhxâukýtự Welcome C++ . CácmởrộngcủaC++ -16- V V V V í í í í d d d d ụ ụ ụ ụ 2.3 2.3 2.3 2.3 Sửdụngcout cout cout cout và<<đaracácgiátrịkhácnhau: #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ voidmain() { int n= 25; cout << "Value : "; cout <<n; } Value:25 Trongvídụnàychúngtađãsửdụngtoántử<<đểinramànhìnhđầutiênlà mộtxâukýtự,sauđólàmộtsốnguyên.Chứcnăngcủatoántử << rõrànglà khácnhautronghailầnkếtxuấtdữliệu:vớicâulệnhthứnhất,chỉđaramànhình mộtdãycáckýtự,ởcâulệnhsau,đãsửdụngmộtkhuônmẫuđểchuyểnđổimột giátrịnhịphânthànhmộtchuỗicáckýtựchữsố.Việcmộttoántửcónhiềuvaitrò khácnhauliênquanđếnmộtkháiniệmmớitrongC++,đólà Địnhnghĩachồng toántử .Điềunàysẽđợcđềcậpđếntrongchơng4. V V V V í í í í d d d d ụ ụ ụ ụ 2.4 2.4 2.4 2.4 Trongvídụnàytagộpcảhaicâulệnhkếtxuấttrongvídụ2.3thànhmộtcâu lệnhphứctạphơn,tuykếtquảkhôngkháctrớc: #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ voidmain() { int n= 25; cout << "Value :" <<n; } Value:25 2.2 2.2 2.2 2.2 C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng vi vi vi vi ế ế ế ế t t t t ra ra ra ra tr tr tr tr ê ê ê ê n n n n cout cout cout cout . . . . Chúngtavừaxemxétmộtvàivídụviếtmộtxâukýtự,mộtsốnguyên.Một cáchtổngquát,chúngtacóthểsửdụngtoántử<<cùngvớicout cout cout cout đểđaramàn hìnhgiátrịcủamộtbiểuthứccócáckiểusau: 8. kiểudữliệucơsở(char char char char , int int int int , float float float float , double double double double ), 9.xâukýtự:(char char char char * ), 10. contrỏ(trừcontrỏchar char char char *) CácmởrộngcủaC++ -17- Trongtrờnghợpmuốnđarađịachỉbiếnxâukýtựphảithựchiệnphép chuyểnkiểutờngminh,chẳnghạn ( char char char char *) > ( void void void void *) . Xétvídụsauđây: V V V V í í í í d d d d ụ ụ ụ ụ 2.4 2.4 2.4 2.4 #include <iostream.h> voidvoidmain(){ int n= 25; long p= 250000; unsigned q= 63000; char c= 'a'; float x= 12.3456789; double y= 12.3456789e16; char * ch = "Welcome C++"; int*ad = &n; cout <<"Value of n:" << n <<"\n"; cout <<"Value of p:" << p <<"\n"; cout <<"Value of c:" << c <<"\n"; cout <<"Value of q:" << q <<"\n"; cout <<"Value of x:" << x <<"\n"; cout <<"Value of y:" << y <<"\n"; cout <<"Value ofch :" <<ch <<"\n"; cout <<"Addrese of n:" <<ad <<"\n"; cout <<"Addrese dech :" << (void*)ch<<"\n"; } Valueofn:25 Valueofp:250000 Valueofc:a Valueofq:63000 Valueofx:12.345679 Valueofy:1.234567e+17 Valueofch:WelcomeC++ Addreseofn:0xfff2 Addresedech:0x00b2 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ố, )sẽ kếtthúcviệcđọctừcin cin cin cin ;kýtựkhônghợplệnàysẽđợcxemxéttrong lầnđọcsau. (ii)Đốivớigiátrịxâukýtự,dấuphâncáchcũnglàSPACE,TAB,CR,còn đốivớigiátrịkýtự,dấuphâncáchlàkýtựCR.Tronghaitrờnghợpnày khôngcókháiniệmkýtựkhônghợplệ.MãsinhradobấmphímEnter củalầnnhậptrớcvẫnđợcxéttronglầnnhậpxâu/kýtựtiếptheovàdo vậysẽcónguycơkhôngnhậpđợcđúnggiátrịmongmuốnkhiđara lệnhnhậpxâukýtựhoặckýtựngaysaucáclệnhnhậpcácgiátrịkhác. Giảiphápkhắcphụcvấnđềnàyđểđảmbảocôngviệcdiễnrađúngtheoý làtrớcmỗilầngọilệnhnhậpdữliệuchoxâu/kýtựtasửdụngmộttrong haichỉthịsauđây: fflush(stdin); //khaibáotrong stdio.h cin.clear(); //hàmthànhphầncủa l ớpđịnhnghĩađố i tợng cin CácmởrộngcủaC++ -19- Tathamkhảochơngtrìnhsau: V V V V í í í í d d d d ụ ụ ụ ụ 2.6 2.6 2.6 2.6 #include<iostream.h> #include<conio.h> voidmain() { int n; float x; chart[81]; clrscr(); do{ cout << "Nhapvaomot so nguyen, mot xau, mot so thuc :"; cin >>n>>t>>x; cout << "Danhap "<<n<< "," <<t<< " va"<<x<< "\n"; } while(n); } Nhapvaomotsonguyen,motxau,motsothuc:3long3.4 Danhap3,longva3.4 Nhapvaomotsonguyen,motxau,motsothuc:5hung5.6 Danhap5,hungand5.6 Nhapvaomotsonguyen,motxau,motsothuc:04 3 Danhap0,4va3 3. 3. 3. 3. Nh Nh Nh Nh ữ ữ ữ ữ ng ng ng ng ti ti ti ti ệ ệ ệ ệ n n n n í í í í ch ch ch ch cho cho cho cho ng ng ng ng ờ ờ ờ ờ i i i i l l l l ậ ậ ậ ậ p p p p tr tr tr tr ì ì ì ì nh nh nh nh 3.1 3.1 3.1 3.1 Ch Ch Ch Ch ú ú ú ú th th th th í í í í ch ch ch ch cu cu cu cu ố ố ố ố i i i i d d d d ò ò ò ò ng ng ng ng Mọikýhiệuđisau//chođếnhếtdòngđợccoilàchúthích,đợcchơng trìnhdịchbỏquakhibiêndịchchơngtrình. Xétvídụsau: cout << "Xin chao\n"; //lờ i chàohỏi Thờngtasửdụngchúthíchcuốidòngkhimuốngiảithíchýnghĩacủamột câulệnhgìđó.Đốivớimộtđoạnchơngtrìnhkiểuchúthíchgiớihạnbởi/*và */chophépmôtảđợcnhiềuthôngtinhơn. CácmởrộngcủaC++ -20- 3.2 3.2 3.2 3.2 Khai Khai Khai Khai b b b b á á á á o o o o m m m m ọ ọ ọ ọ i i i i n n n n ơ ơ ơ ơ i i i i TrongC++khôngnhấtthiếtphảinhómlênđầucáckhaibáođặtbêntrongmột hàmhaymộtkhốilệnh,màcóthểđặtxenkẽvớicáclệnhxửlý.Vídụ. { int n; n=23; cout <<n<<"\n"; int*p=&n; cout <<p<<"\n"; } Giátrịkhởiđầuchocácbiếncóthểthayđổitạicácthờiđiểmchạychơng trìnhkhácnhau. Mộtvídụminhhoạchokhảnăngđịnhnghĩakhắpmọinơilàcóthểkhaibáo cácbiếnđiềukhiểnngaybêntrongcácvònglặpnếubiếnđóchađợckhaibáo trớcđótrongcùngkhốilệnhcũngnhkhôngđợckhaibáolạiởphầnsau.Xem đoạnchơngtrìnhsau: { //chacói for(inti=0; ; ) //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++ -21- Trongnhữngtrờnghợpcầnthiết,khimuốntruyxuấttớibiếntoàncụcphảisử dụngtoántử:: :: :: :: trớctênbiến: #include <iostream.h> int x; main() { int x= 10; //xcụcbộ ::x = 10; //xtoàncục cout<<x<< \n ; //xcụcbộ cout<<::x<< \n ; //xtoàncục } 4. 4. 4. 4. H H H H à à à à m m m m inline inline inline inline TrongC++cóthểđịnhnghĩacáchàmđợcthaythếtrựctiếpthànhmãlệnh máytạichỗgọi(inline)mỗilầnđợcthamchiếu.Điểmnàyrấtgiốngvớicáchhoạt độngcủacácmacrocóthamsốtrongC.Ưuđiểmcủacáchàminline inline inline inline làchúng khôngđòihỏicácthủtụcbổsungkhigọihàmvàtrảgiátrịvề.Dovậyhàminline inline inline inline đợcthựchiệnnhanhhơnsovớicáchàmthôngthờng. Mộthàminline inline inline inline đợcđịnhnghĩavàđợcsửdụnggiốngnhbìnhthờng. Điểmkhácnhauduynhấtlàphảiđặtmôtảinline inline inline inline trớckhaibáohàm. Xétvídụsauđây: V V V V í í í í d d d d ụ ụ ụ ụ 2.7 2.7 2.7 2.7 #include <iostream.h> #include<math.h> #include<conio.h> inlinedoublenorme(double vec[3]); //khaibáohàminline voidmain(){ clrscr(); doublev1[3],v2[3]; int i; for(i=0;i<3;i++) { v1[i]=i;v2[i]=2*i-1;} cout <<"norme cua v1 : "<<norme(v1)<<" - norme cua v2 : "<<norme(v2); CácmởrộngcủaC++ -22- getch(); } /*Địnhnghĩahàminline*/ inlinedoublenorme(doublevec[3]) { int i;double s=0; for(i=0;i<3;i++) s+=vec[i]*vec[i]; return(sqrt(s)); } normecuav1:2.236068-normecuav2:3.316625 Hàm norme() nhằmmụcđíchtínhchuẩncủa vector vớibathànhphần. Từkhoáinline inline inline inline yêucầuchơngtrìnhbiêndịchxửlýhàmnormekhácvớicác hàmthôngthờng.Cụthểlà,mỗilầngọi norme() ,trìnhbiêndịchghéptrựctiếp cácchỉthịtơngứngcủahàmvàotrongchơngtrình(ởdạngngônngữmáy).Do đócơchếquảnlýlờigọivàtrởvềkhôngcầnnữa(khôngcầnlungữcảnh,sao chépcácthôngsố ),nhờvậytiếtkiệmthờigianthựchiện.Bêncạnhđócácchỉthị tơngứngsẽđợcsinhramỗikhigọihàmdođóchiphílutrữtănglênkhihàm đợcgọinhiềulần. Điểmbấtlợikhisửdụngcáchàminline inline inline inline lànếuchúngquálớnvàđợcgọi thờngxuyênthìkíchthớcchơngtrìnhsẽtănglênrấtnhanh.Vìlýdonày,chỉ nhữnghàmđơngiản,khôngchứacáccấutrúclặpmớiđợckhaibáolàhàminline inline inline inline . Việcsửdụnghàminline inline inline inline sovớicácmacrocóthamsốcóhaiđiểmlợi.Trớc hếthàminline inline inline inline cungcấpmộtcáchcócấutrúchơnkhimởrộngcáchàmđơngiản thànhhàminline inline inline inline .Thựctếchothấykhitạomộtmacrocóthamsốthờnghayquên cácdấuđóngngoặc,rấtcầnđếnđểđảmbảosựmởrộngnộituyếnriêngtrongmỗi trờnghợp.Vớimacrocóthểgâyrahiệuứngphụhoặcbịhạnchếkhảnăngsử dụng.Chẳnghạnvớimacro: #define square(x){x++*x++} Vớilờigọi square(a) với a làbiếnsẽsảnsinhrabiểuthức a++*a++ vàkếtquảlàlàmthayđổigiátrị củabiếnatớihailần. Cònlờigọi [...]... thuoc can nhap? "; -3 7- Các mở rộng của C++ cin >>taille; for(nbloc=1;;nbloc++) { adr =new int [taille]; cout . -1 3- Ch Ch Ch Ch ơ ơ ơ ơ ng ng ng ng 2 2 2 2 Nh Nh Nh Nh ữ ữ ữ ữ ng ng ng ng m m m m ở ở ở ở r r r r ộ ộ ộ ộ ng ng ng ng c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ Mụcđíchchơngnày: 1. GiớithiệunhữngđiểmkhácbiệtchủyếugiữaCv C++ 2. CácđiểmmớicủaC++sovớiC(nhữngvấnđềcơbảnnhất) 1. 1. 1. 1. C C C C á á á á c c c c đ đ đ đ i i i i ể ể ể ể m m m m kh kh kh kh ô ô ô ô ng ng ng ng t t t t ơ ơ ơ ơ ng ng ng ng th th th th í í í í ch ch ch ch gi gi gi gi ữ ữ ữ ữ a a a a C++ C++ C++ C++ v v v v à à à à ANSI ANSI ANSI ANSI C C C C 1.1 1.1 1.1 1.1 Đị Đị Đị Đị nh nh nh nh ngh ngh ngh ngh ĩ ĩ ĩ ĩ a a a a h h h h à à à à m m m m Trongđịnhnghĩahàm,ANSICchophéphaikiểukhaibáodòngtiêuđềcủa hàm,trongkhiđóC++chỉchấpnhậnmộtcách: 1.2 1.2 1.2 1.2 Khai Khai Khai Khai b b b b á á á á o o o o h h h h à à à à m m m m nguy nguy nguy nguy ê ê ê ê n n n n m m m m ẫ ẫ ẫ ẫ u u u u TrongANSIC,khisửdụngmộthàmchađợcđịnhnghĩatrớcđótrong cùngmộttệp,tacóthể: 3. khôngcầnkhaibáo(khiđóngầmđịnhgiátrịtrảvềcủahàmlàint) 4. chỉcầnkhaibáotênhàmvàgiátrịtrảvề,khôngcầndanhsáchkiểucủa cácthamsố. 5.khaibáohàmnguyênmẫu. VớiC++,chỉcóphơngphápthứ3làchấpnhậnđợc.Nóicáchkhác,mộtlời gọihàmchỉđợcchấpnhậnkhitrìnhbiêndịchbiếtđợckiểucủacácthamsố, kiểucủagiátrịtrảvề.Mỗikhitrìnhbiêndịchgặpmộtlờigọihàm,nósẽsosánh cáckiểucủacácđốisốđợctruyềnvớicácthamsốhìnhthứctơngứng.Trong trờnghợpcósựkhácnhau,cóthểthựchiệnmộtsốchuyểnkiểutựđộngđểcho hàmnhậnđợccódanhsáchcácthamsốđúngvớikiểuđãđợckhaibáocủahàm. Tuynhiênphảituântheonguyêntắcchuyểnkiểutựđộngsauđây: char char char char . > int* int* int* int* đốivớicâulệnhthứhai. CácmởrộngcủaC++ -1 5- TrongC++,chỉcóchuyểnđổikiểungầmđịnhtừmộtkiểutrỏtuỳýthành void* void* void* void* làchấpnhậnđợc,cònmuốnchuyểnđổingợclại,taphảithựchiệnchuyển kiểutờngminhnhcáchviếtsauđây: gen = adj; adj = (int*)gen; 2. 2. 2. 2. C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng v v v v à à à à o/ra o/ra o/ra o/ra m m m m ớ ớ ớ ớ i i i i c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ Cáctiệníchvào/ra(hàmhoặcmacro)củathviệnCchuẩnđềucóthểsửdụng trongC++.Đểsửdụngcáchàmnàychúngtachỉcầnkhaibáotệptiêuđềtrongđó cóchứakhaibáohàmnguyênmẫucủacáctiệníchnày. Bêncạnhđó,C++còncàiđặtthêmcáckhảnăngvào/ramớidựatrênhaitoán tử<<(xuất)và>>(nhập)vớicácđặctínhsauđây: 6. đơngiảntrongsửdụng 7.cókhảnăngmởrộngđốivớicáckiểumớitheonhucầucủangờilập trình. Trongtệptiêuđề iostream.h ngờitađịnhnghĩahaiđốitợngcout cout cout cout vàcin cin cin cin tơngứngvớihaithiếtbịchuẩnra/vàođợcsửdụngcùngvới<<và>>.Thông thờngtahiểucout cout cout cout làmànhìnhcòncin cin cin cin làbànphím. 2.1 2.1 2.1 2.1 Ghi Ghi Ghi Ghi d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u l l l l ê ê ê ê n n n n thi thi thi thi ế ế ế ế t t t t b b b b ị ị ị ị ra ra ra ra chu chu chu chu ẩ ẩ ẩ ẩ n n n n (m (m (m (m à à à à n n n n h h h h ì ì ì ì nh) nh) nh) nh) cout cout cout cout Trongphầnnàytaxemxétmộtsốvídụminhhoạcáchsửdụngcout cout cout cout và<< đểđathôngtinramànhình. V V V V í í í í d d d d ụ ụ ụ ụ 2.2 2.2 2.2 2.2 Chơngtrìnhsauminhhoạcáchsửdụngcout cout cout cout đểđaramànhìnhmộtxâuký tự. #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ main() { cout << "Welcome C++& quot;; } WelcomeC++ << làmộttoántửhaingôi,toánhạngởbêntráimôtảnơikếtxuấtthôngtin (cóthểlàmộtthiếtbịngoạivichuẩnhaylàmộttậptin),toánhạngbênphảicủa << làmộtbiểuthứcnàođó.Trongchơngtrìnhtrên,câulệnh cout <<"Welcome C++& quot; đaramànhìnhxâukýtự Welcome C++ . CácmởrộngcủaC++ -1 6- V V V V í í í í d d d d ụ ụ ụ ụ 2.3 2.3 2.3 2.3 Sửdụngcout cout cout cout và<<đaracácgiátrịkhácnhau: #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ voidmain() { int n= 25; cout << "Value : "; cout <<n; } Value:25 Trongvídụnàychúngtađãsửdụngtoántử<<đểinramànhìnhđầutiênlà mộtxâukýtự,sauđólàmộtsốnguyên.Chứcnăngcủatoántử << rõrànglà khácnhautronghailầnkếtxuấtdữliệu:vớicâulệnhthứnhất,chỉđaramànhình mộtdãycáckýtự,ởcâulệnhsau,đãsửdụngmộtkhuônmẫuđểchuyểnđổimột giátrịnhịphânthànhmộtchuỗicáckýtựchữsố.Việcmộttoántửcónhiềuvaitrò khácnhauliênquanđếnmộtkháiniệmmớitrongC++,đólà Địnhnghĩachồng toántử .Điềunàysẽđợcđềcậpđếntrongchơng4. V V V V í í í í d d d d ụ ụ ụ ụ 2.4 2.4 2.4 2.4 Trongvídụnàytagộpcảhaicâulệnhkếtxuấttrongvídụ2.3thànhmộtcâu lệnhphứctạphơn,tuykếtquảkhôngkháctrớc: #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ voidmain() { int n= 25; cout << "Value :" <<n; } Value:25 2.2 2.2 2.2 2.2 C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng vi vi vi vi ế ế ế ế t t t t ra ra ra ra tr tr tr tr ê ê ê ê n n n n cout cout cout cout . . . . Chúngtavừaxemxétmộtvàivídụviếtmộtxâukýtự,mộtsốnguyên.Một cáchtổngquát,chúngtacóthểsửdụngtoántử<<cùngvớicout cout cout cout đểđaramàn hìnhgiátrịcủamộtbiểuthứccócáckiểusau: 8. kiểudữliệucơsở(char char char char , int int int int , float float float float , double double double double ), 9.xâukýtự:(char char char char * ), 10. contrỏ(trừcontrỏchar char char char *) CácmởrộngcủaC++ -1 7- Trongtrờnghợpmuốnđarađịachỉbiếnxâukýtựphảithựchiệnphép chuyểnkiểutờngminh,chẳnghạn ( char char char char *) . > int* int* int* int* đốivớicâulệnhthứhai. CácmởrộngcủaC++ -1 5- TrongC++,chỉcóchuyểnđổikiểungầmđịnhtừmộtkiểutrỏtuỳýthành void* void* void* void* làchấpnhậnđợc,cònmuốnchuyểnđổingợclại,taphảithựchiệnchuyển kiểutờngminhnhcáchviếtsauđây: gen = adj; adj = (int*)gen; 2. 2. 2. 2. C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng v v v v à à à à o/ra o/ra o/ra o/ra m m m m ớ ớ ớ ớ i i i i c c c c ủ ủ ủ ủ a a a a C++ C++ C++ C++ Cáctiệníchvào/ra(hàmhoặcmacro)củathviệnCchuẩnđềucóthểsửdụng trongC++.Đểsửdụngcáchàmnàychúngtachỉcầnkhaibáotệptiêuđềtrongđó cóchứakhaibáohàmnguyênmẫucủacáctiệníchnày. Bêncạnhđó,C++còncàiđặtthêmcáckhảnăngvào/ramớidựatrênhaitoán tử<<(xuất)và>>(nhập)vớicácđặctínhsauđây: 6. đơngiảntrongsửdụng 7.cókhảnăngmởrộngđốivớicáckiểumớitheonhucầucủangờilập trình. Trongtệptiêuđề iostream.h ngờitađịnhnghĩahaiđốitợngcout cout cout cout vàcin cin cin cin tơngứngvớihaithiếtbịchuẩnra/vàođợcsửdụngcùngvới<<và>>.Thông thờngtahiểucout cout cout cout làmànhìnhcòncin cin cin cin làbànphím. 2.1 2.1 2.1 2.1 Ghi Ghi Ghi Ghi d d d d ữ ữ ữ ữ li li li li ệ ệ ệ ệ u u u u l l l l ê ê ê ê n n n n thi thi thi thi ế ế ế ế t t t t b b b b ị ị ị ị ra ra ra ra chu chu chu chu ẩ ẩ ẩ ẩ n n n n (m (m (m (m à à à à n n n n h h h h ì ì ì ì nh) nh) nh) nh) cout cout cout cout Trongphầnnàytaxemxétmộtsốvídụminhhoạcáchsửdụngcout cout cout cout và<< đểđathôngtinramànhình. V V V V í í í í d d d d ụ ụ ụ ụ 2.2 2.2 2.2 2.2 Chơngtrìnhsauminhhoạcáchsửdụngcout cout cout cout đểđaramànhìnhmộtxâuký tự. #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ main() { cout << "Welcome C++& quot;; } WelcomeC++ << làmộttoántửhaingôi,toánhạngởbêntráimôtảnơikếtxuấtthôngtin (cóthểlàmộtthiếtbịngoạivichuẩnhaylàmộttậptin),toánhạngbênphảicủa << làmộtbiểuthứcnàođó.Trongchơngtrìnhtrên,câulệnh cout <<"Welcome C++& quot; đaramànhìnhxâukýtự Welcome C++ . CácmởrộngcủaC++ -1 6- V V V V í í í í d d d d ụ ụ ụ ụ 2.3 2.3 2.3 2.3 Sửdụngcout cout cout cout và<<đaracácgiátrịkhácnhau: #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ voidmain() { int n= 25; cout << "Value : "; cout <<n; } Value:25 Trongvídụnàychúngtađãsửdụngtoántử<<đểinramànhìnhđầutiênlà mộtxâukýtự,sauđólàmộtsốnguyên.Chứcnăngcủatoántử << rõrànglà khácnhautronghailầnkếtxuấtdữliệu:vớicâulệnhthứnhất,chỉđaramànhình mộtdãycáckýtự,ởcâulệnhsau,đãsửdụngmộtkhuônmẫuđểchuyểnđổimột giátrịnhịphânthànhmộtchuỗicáckýtựchữsố.Việcmộttoántửcónhiềuvaitrò khácnhauliênquanđếnmộtkháiniệmmớitrongC++,đólà Địnhnghĩachồng toántử .Điềunàysẽđợcđềcậpđếntrongchơng4. V V V V í í í í d d d d ụ ụ ụ ụ 2.4 2.4 2.4 2.4 Trongvídụnàytagộpcảhaicâulệnhkếtxuấttrongvídụ2.3thànhmộtcâu lệnhphứctạphơn,tuykếtquảkhôngkháctrớc: #include <iostream.h> /*phảikhaibáokhimuốnsửdụngcout*/ voidmain() { int n= 25; cout << "Value :" <<n; } Value:25 2.2 2.2 2.2 2.2 C C C C á á á á c c c c kh kh kh kh ả ả ả ả n n n n ă ă ă ă ng ng ng ng vi vi vi vi ế ế ế ế t t t t ra ra ra ra tr tr tr tr ê ê ê ê n n n n cout cout cout cout . . . . Chúngtavừaxemxétmộtvàivídụviếtmộtxâukýtự,mộtsốnguyên.Một cáchtổngquát,chúngtacóthểsửdụngtoántử<<cùngvớicout cout cout cout đểđaramàn hìnhgiátrịcủamộtbiểuthứccócáckiểusau: 8. kiểudữliệucơsở(char char char char , int int int int , float float float float , double double double double ), 9.xâukýtự:(char char char char * ), 10. contrỏ(trừcontrỏchar char char char *) CácmởrộngcủaC++ -1 7- Trongtrờnghợpmuốnđarađịachỉbiếnxâukýtựphảithựchiệnphép chuyểnkiểutờngminh,chẳnghạn ( char char char char *)

Ngày đăng: 05/07/2014, 19:20

Từ khóa liên quan

Mục lục

  • CácđiểmkhôngtươngthíchgiữaC++vàANSIC

    • Địnhnghĩahàm

    • Khaibáohàmnguyênmẫu

    • Chương2NhữngmởrộngcủaC++Mụcđíchchươngnày

    • Cáckhảnăngvào/ramớicủaC++

      • Ghidữliệulênthiếtbịrachuẩn(mànhình)cout

      • Cáckhảnăngviếtratrêncout.

      • Đọcdữliệutừthiếtbịvàochuẩn(bànphím)cin

      • Nhữngtiệníchchongườilậptrình

        • Chúthíchcuốidòng

        • Khaibáomọinơi

        • Toántửphạmvi::

        • Hàminline

        • Thamchiếu

          • Thamchiếutớimộtbiến

          • Truyềnthamsốchohàmbằngthamchiếu

          • Giátrịtrảvềcủahàmlàthamchiếu

          • Địnhnghĩachồnghàm(Overloadingfunctions)

            • Trườnghợpcáchàmcómộtthamsố

            • Trườnghợpcáchàmcónhiềuthamsố

            • Thamsốngầmđịnhtronglờigọihàm

            • Chương2NhữngmởrộngcủaC++Mụcđíchchươngnày

              • Toántửcấpphátbộnhớđộngnew

              • Toántửgiảiphóngvùngnhớđộngdelete

              • Tómtắt

                • Ghinhớ

                • Cáclỗithườnggặp

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan