C++語言學(xué)習(xí)總結(jié)之談
要對C++語言學(xué)習(xí)時(shí),一定要了解什么是C++語言以及C++的構(gòu)成,C++設(shè)計(jì)成盡可能與C兼容,C++中提供一個(gè)從C到C++的平滑過渡,C++避免平臺(tái)限定或沒有普遍用途的特性。
在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對象具有狀態(tài)(屬性)和行為,狀態(tài)保存在成員變量中,行為通過成員方法(函數(shù))來實(shí)現(xiàn)。C語言中的結(jié)構(gòu)體只能描述一個(gè)對象的狀態(tài),不能描述一個(gè)對象的行為。在C++語言學(xué)習(xí)中,對結(jié)構(gòu)體進(jìn)行了擴(kuò)展,C++的結(jié)構(gòu)體可以包含函數(shù)。
1、結(jié)構(gòu)體的定義
下面我們看看如例1所示的程序(EX01.C )。
- #include
- struct point
- {
- int x;
- int y;
- };
- void main()
- {
- point pt;
- pt.x=0;
- pt.y=0;
- cout<<PT.X<<ENDL<<PT.Y<<ENDL;
- }
在這段程序中,我們定義了一個(gè)C語言結(jié)構(gòu)體point,在這個(gè)結(jié)構(gòu)體當(dāng)中,定義了兩個(gè)整型的變量,作為一個(gè)點(diǎn)的X坐標(biāo)和Y坐標(biāo)。在main函數(shù)中,定義了一個(gè)結(jié)構(gòu)體的變量pt,對pt的兩個(gè)成員變量進(jìn)行賦值,然后調(diào)用C++的輸出流類的對象cout將這個(gè)點(diǎn)的坐標(biāo)輸出。
在C++中預(yù)定義了三個(gè)標(biāo)準(zhǔn)輸入輸出流對象:cin(標(biāo)準(zhǔn)輸入)、cout(標(biāo)準(zhǔn)輸出)和cerr(標(biāo)準(zhǔn)錯(cuò)誤輸出)。cin與輸入操作符(> gt;)一起用于從標(biāo)準(zhǔn)輸入讀入數(shù)據(jù)。cout與輸出操作符(< lt;)一起用于輸出數(shù)據(jù)到標(biāo)準(zhǔn)輸出上,cerr與輸出操作符(< lt;)一起用于輸出錯(cuò)誤信息到標(biāo)準(zhǔn)錯(cuò)誤上(一般同標(biāo)準(zhǔn)輸出)。默認(rèn)的標(biāo)準(zhǔn)輸入通常為鍵盤,默認(rèn)的標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出通常為顯示器。
cin和cout的使用比C語言中的scanf和printf要簡單得多。使用cin和cout你不需要去考慮輸入和輸出的數(shù)據(jù)的類型,cin和cout可以自動(dòng)根據(jù)數(shù)據(jù)的類型調(diào)整輸入輸出的格式。對于輸出來說,按照例1中所示的方式調(diào)用就可以了,對于輸入來說,我們以如下方式調(diào)用即可:
注意:在使用cin和cout對象時(shí),要注意箭頭的方向。在輸出中我們還使用了endl(end of line),表示換行,注意***一個(gè)是字母‘l’,而不是數(shù)字1。endl相當(dāng)于C語言的'/n',endl在輸出流中插入一個(gè)換行,并刷新輸出緩沖區(qū)。
因?yàn)橛玫搅?FONT size=+0>C++語言學(xué)習(xí)的標(biāo)準(zhǔn)輸入輸出流,所以我們需要包含iostream.h這個(gè)頭文件,就像我們在C語言中用到了printf和scanf函數(shù)時(shí),要包含C的標(biāo)準(zhǔn)輸入輸出頭文件stdio.h。提示:在定義結(jié)構(gòu)體時(shí),一定C語言不要忘了在右花括號(hào)處加上一個(gè)分號(hào)(;)。我們將結(jié)構(gòu)體point的定義修改一下,結(jié)果如例2所示:
- struct point
- {
- int x;
- int y;
- void output()
- {
- cout<<X<<ENDL<<Y<<ENDL;
- }
- };
- 在point這個(gè)結(jié)構(gòu)體中加入了一個(gè)函數(shù)output。我們知道在C語言中,結(jié)構(gòu)體中是不能有函數(shù)的,然而在C++中,結(jié)構(gòu)體中是可以有函數(shù)的,稱為成員函數(shù)。這樣,在main函數(shù)中就可以以如下方式調(diào)用:
- cout<<X<<ENDL<<Y<<ENDL;
- }
- };
這就是C++語言學(xué)習(xí)中的類的定義,看起來是不是和結(jié)構(gòu)體的定義很類似?在C++語言學(xué)習(xí)中,結(jié)構(gòu)體是用關(guān)鍵字struct聲明的類。類和結(jié)構(gòu)體的定義除了使用關(guān)鍵字“cla ”和“struct”不同之外,更重要的是在成員的訪問控制方面有所差異。
【編輯推薦】