Danh mục

Các mở rộng của C++ so với C

Số trang: 29      Loại file: pdf      Dung lượng: 1.51 MB      Lượt xem: 1      Lượt tải: 0    
10.10.2023

Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Để bổ sung các tính năng mới vào C, một số từ khóa (keyword) mới đã được đưa vào C++ ngoài các từ khóa có trong C.  Các chương trình bằng C nào sử dụng các tên trùng với các từ khóa cần phải thay đổi trước khi chương trình được dịch lại bằng C++.
Nội dung trích xuất từ tài liệu:
Các mở rộng của C++ so với C Lê Thị Mỹ Hạnh Khoa CNTTĐại học Bách khoa – Đại học Đà NẵngTừ khóa Để bổ sung các tính năng mới vào C, một số từ khóa (keyword) mới đã được đưa vào C++ ngoài các từ khóa có trong C. Các chương trình bằng C nào sử dụng các tên trùng với các từ khóa cần phải thay đổi trước khi chương trình được dịch lại bằng C++. Các từ khóa mới này là :asm catch class delete friend inlinenew operator private protected publictemplate this throw try virtualChú thích chó thÝch trong C b»ng /* ... */ C++ ®-a thªm chó thÝch b¾t ®Çu b»ng //.  kiÓu chó thÝch /*...*/ ®-îc dïng cho c¸c khèi chó thÝch lín gåm nhiÒu dßng,  cßn kiÓu // ®-îc dïng cho c¸c chó thÝch trªn mét dßng.VÝ dô: /* §©y lµ chó thÝch trong C */ // §©y lµ chó thÝch trong C++Khai báo biến Trong C tÊt c¶ c¸c c©u lÖnh khai b¸o biÕn, m¶ng côc bé ph¶i ®Æt t¹i ®Çu khèi.  vÞ trÝ khai b¸o vµ vÞ trÝ sö dông cña biÕn cã thÓ ë c¸ch kh¸ xa nhau, ®iÒu nµy g©y khã kh¨n trong viÖc kiÓm so¸t ch-¬ng tr×nh. C++ ®· kh¾c phôc nh-îc ®iÓm nµy b»ng c¸ch cho phÐp c¸c lÖnh khai b¸o biÕn cã thÓ ®Æt bÊt kú chç nµo trong ch-¬ng tr×nh tr-íc khi c¸c biÕn ®-îc sö dông.  Ph¹m vi ho¹t ®éng cña c¸c biÕn kiÓu nµy lµ khèi trong ®ã biÕn ®-îc khai b¸o.Phép chuyển kiểu Trong C phÐp chuyÓn kiÓu ®-îc viÕt theo có ph¸p: (kiÓu) biÓu thøc C++ cßn sö dông mét phÐp chuyÓn kiÓu míi: KiÓu(biÓu thøc) PhÐp chuyÓn kiÓu nµy cã d¹ng nh- mét hµm sè chuyÓn kiÓu ®ang ®-îc gäi. C¸ch chuyÓn kiÓu nµy th-êng ®-îc sö dông trong thùc tÕ.Vào ra trong C++ XuÊt d÷ liÖu  Có ph¸p: cout >biÕn N;  To¸n tö cin ®-îc ®Þnh nghÜa tr-íc nh- mét ®èi t-îng biÓu diÔn cho thiÕt bÞ vµo chuÈn cña C++ lµ bµn phÝm, cin ®-îc sö dông kÕt hîp víi to¸n tö trÝch >> ®Ó nhËp d÷ liÖu tõ bµn phÝm cho c¸c biÕn 1, 2, ..., N. Chó ý:  §Ó nhËp mét chuçi kh«ng qu¸ n ký tù vµ l-u vµo m¶ng mét chiÒu a (kiÓu char) cã thÓ dïng hµm cin.get nh- sau: cin.get(a,n);  To¸n tö nhËp cin>> sÏ ®Ó l¹i ký tù chuyÓn dßng ’\n’ trong bé ®Öm. Ký tù nµy cã thÓ lµm tr«i ph-¬ng thøc cin.get. §Ó kh¾c phôc t×nh tr¹ng trªn cÇn dïng ph-¬ng thøc cin.ignore(1) ®Ó bá qua mét ký tù chuyÓn dßng.  §Ó sö dông c¸c lo¹i to¸n tö vµ ph-¬ng thøc nãi trªn cÇn khai b¸o tËp tin dÉn h-íng iostream.hVào ra trong C++ (2) §Þnh d¹ng khi in ra mµn h×nh  §Ó quy ®Þnh sè thùc ®-îc hiÓn thÞ ra mµn h×nh víi p ch÷ sè sau dÊu chÊm thËp ph©n, ta sö dông ®ång thêi c¸c hµm sau: setiosflags(ios::showpoint);//Bật cờ hiệu showpoint(p) setprecision(p);  C¸c hµm nµy cÇn ®Æt trong to¸n tö xuÊt nh- sau: coutToán tử định phạm vi (::) Toán tử định phạm vi (scope resolution operator) ký hiệu là ::, nó được dùng truy xuất một phần tử bị che bởi phạm vi hiện thời. Ví dụ: #include int X = 5; int main() { int X = 16; coutCấp phát và giải phóng bộ nhớ Trong C để cÊp ph¸t bé nhí dïng: malloc(), calloc() vµ ®Ó gi¶i phãng bé nhí ®-îc cÊp ph¸t dïng hµm free(). C++ ®-a thªm mét c¸ch thøc míi ®Ó thùc hiÖn viÖc cÊp ph¸t vµ gi¶i phãng bé nhí b»ng c¸ch dïng hai to¸n tö new vµ delete.Cấp phát và giải phóng bộ nhớ To¸n tö new ®Ó cÊp ph¸t bé nhí new Tªn kiÓu ; hoÆc new Tªn kiÓu(Gi¸ trÞ khëi t¹o);  Trong ®ã Tªn kiÓu lµ kiÓu d÷ liÖu cña biÕn con trá, nã cã thÓ lµ: c¸c kiÓu d÷ liÖu chuÈn nh- int, float, double, char,... hoÆc c¸c kiÓu do ng-êi lËp tr×nh ®Þnh nghÜa nh- m¶ng, cÊu tróc, líp,...  §Ó cÊp ph¸t bé nhí cho m¶ng mét chiÒu, dïng có ph¸p nh- sau: BiÕn con trá = new kiÓu[n];  Trong ®ã n lµ sè nguyªn d-¬ng x¸c ®Þnh sè phÇn tö cña m¶ng.VÝ dô: float *p = new float; //cÊp ph¸t bé nhí cho biÕn con trá p cã kiÓu int int *a = new int[100]; //cÊp ph¸t bé nhí ®Ó l-u tr÷ m¶ng mét chiÒu a gåm 100 phÇn tö Khi sö dông to¸n tö new ®Ó cÊp ph¸t bé nhí, nÕu kh«ng ®ñ bé nhí ®Ó cÊp ph¸t, new sÏ tr¶ l¹i gi¸ trÞ NULL cho con trá. §o¹n ch-¬ng tr×nh sau minh häa c¸ch kiÓm tra lçi cÊp ph¸t bé nhí: double *p; int n; cout>n; p = new double[n] if (p == NULL) { cout Cấp phát và giải phóng bộ nhớ To¸n tö delete ®Ó gi¶i phãng bé nhí  To¸n tö delete thay cho hµm free() cña C, nã cã có ph¸p nh- sau: delete contrá ;  §Ó gi¶i phãng vïng nhí ®· cÊp ph¸t cho m¶ng delete [ ] contrá;  VÝ dô: Thu håi vïng nhí ®· cÊp ph¸t cho hai biÕn con trá p vµ a (víi a lµ mét m¶ng mét chiÒu) delete p; delete [ ] a;Hàm inline ViÖc tæ chøc ch-¬ng tr×nh thµnh c¸c hµm cã -u ®iÓm ch-¬ng tr×nh ®-îc chia thµnh c¸c ®¬n vÞ ®éc lËp, ®iÒu nµy gi¶m ®-îc kÝch th-íc ch-¬ng tr×nh, v× mçi ®o¹n ch-ong tr×nh thùc hiÖn nhiÖm vô cña hµm ®-îc thay b»ng lêi gäi hµm. Tuy nhiªn hµm còng cã nh-îc ®iÓm lµ lµm lµ chËm tèc ®é thùc hiÖn ch-¬ng tr×nh v× ph¶i thùc hiÖn mét sè thao t¸c cã tÝnh thñ tôc mçi khi gäi hµm nh-: cÊp ph¸t vïng nhí cho c¸c ®èi sè vµ biÕn côc bé, truyÒn d÷ liÖu cña c¸c tham sè cho c¸c ®èi, gi¶i phãng vïng nhí tr-íc khi tho¸t khái hµm. C++ cho kh¶ n¨ng kh¾c phôc ®-îc nh-îc ®iÓm nãi trªn b»ng c¸ch dïng hµm néi tuyÕn. §Ó biÕn mét hµm thµnh hµm néi tuyÕn ta viÕt thªm tõ khãa inline vµo tr-íc khai b¸o nguyªn mÉu hµm. Chó ý:  Trong mäi tr-êng hîp, tõ khãa inline ph¶i xuÊt hiÖn tr-íc c¸c lêi gäi hµm th× tr×nh biªn dÞch míi biÕt cÇn xö lý hµm theo kiÓu inline.  ChØ nªn khai b¸o lµ hµm inline khi hµm cã néi dung ®¬n gi¶n.  Hµm ®Ö qui kh«ng thÓ lµ hµm inline.Hàm inline - Ví dụ#include #include #include #include inline int f(int a,int b); inline int f(int a,int b)void main() {{ ...

Tài liệu được xem nhiều: