《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第1頁(yè)
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第2頁(yè)
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第3頁(yè)
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第4頁(yè)
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第1章 C+ 基礎(chǔ)endl 換行并刷新輸出流 setw(n) 設(shè)置字段位數(shù)為nhex,oct,dec 十六進(jìn)制,八進(jìn)制,十進(jìn)制表示setfill 定義填充字符 setprecision 定義浮點(diǎn)數(shù)的精度left,right 左對(duì)齊,右對(duì)齊showpoint 強(qiáng)制顯示小數(shù)點(diǎn)以及全部尾部0C+通過(guò)給常量命名的方式定義常量: const<數(shù)據(jù)類(lèi)型名><常量名>=<表達(dá)式>用const定義的標(biāo)識(shí)符常量時(shí),一定要對(duì)其初始化。在說(shuō)明時(shí)進(jìn)行初始化是對(duì)這種常量置值的唯一方法 ,不能用賦值運(yùn)算符對(duì)這種常量進(jìn)行賦值。函數(shù)聲明的一般形式為 函數(shù)類(lèi)型 函數(shù)名(參數(shù)表)函數(shù)模板的定義

2、template<typename 或 class T> 函數(shù)定義例子:template<typename T> T max(T a,T b) return(a>b)? a:b; 定義函數(shù)模板時(shí)可以使用多個(gè)類(lèi)型參數(shù),每個(gè)類(lèi)型參數(shù)前面只需加上關(guān)鍵字typename或class,用逗號(hào)分隔: template <class T1, class T2, class T3>例子:template<class T1, class T2> T1 max(T1 a,T2 b) return (a>b) ? a : (T1)b; 有默認(rèn)參數(shù)的函數(shù):實(shí)

3、參與形參的結(jié)合是從左至右進(jìn)行的,因此指定默認(rèn)值的參數(shù)必須放在形參列表中的最右端引用定義 對(duì)變量起另外一個(gè)名字 (別名alias),這個(gè)名字稱(chēng)為該變量的引用。 <類(lèi)型> &<引用變量名> = <原變量名>;其中原變量名必須是一個(gè)已定義過(guò)的變量。如: int max ; int &refmax=max;refmax并沒(méi)有重新在內(nèi)存中開(kāi)辟單元,只是引用max的單元。max與refmax在內(nèi)存中占用同一地址,即同一地址兩個(gè)名字。 對(duì)引用類(lèi)型的變量,說(shuō)明以下幾點(diǎn):1、 引用在定義的時(shí)候要初始化 2、 對(duì)引用的操作就是對(duì)被引用的變量的操作。3、 引用類(lèi)型

4、變量的初始化值不能是一個(gè)常數(shù)。4、 一旦引用被聲明,它就不能再指向其它的變量。5、對(duì)引用的初始化,可以用一個(gè)變量名,也可以用另一個(gè)引用。6、引用同變量一樣有地址,可以對(duì)其地址進(jìn)行操作,即將其地址賦給一指針。當(dāng)&m的前面有類(lèi)型符時(shí)(如int &m),它必然是對(duì)引用的聲明;如果前面無(wú)類(lèi)型符(如cout<<&m),則是取變量的地址。7、 對(duì)常量(用const聲明)的引用使用如下方式:int i=5;const int &a=i;內(nèi)聯(lián)函數(shù)定義的一般格式為:inline <函數(shù)值類(lèi)型> <函數(shù)名>(<參數(shù)表>) <函數(shù)

5、體> 作用域運(yùn)算符:a表示全局作用域中的變量a。注意:不能用:訪(fǎng)問(wèn)函數(shù)中的局部變量new運(yùn)算從堆中分配一塊與<類(lèi)型>相適應(yīng)的大小為<元素個(gè)數(shù)>的數(shù)組存儲(chǔ)空間,若分配成功,將這塊存儲(chǔ)空間的起始地址存入<指針變量名>,否則置<指針變量名>的值為NULL(空指針值,即0)。new的使用格式為: <指針變量名>=new <類(lèi)型><元素個(gè)數(shù)>delete運(yùn)算符用來(lái)釋放<指針變量名>指向的動(dòng)態(tài)存儲(chǔ)空間。使用格式如下: delete <指針變量名> 或 delete <指針變量名>2

6、3第2章 面向?qū)ο蠡靖拍蠲嫦蜻^(guò)程編程與面向?qū)ο缶幊痰膮^(qū)別:面向過(guò)程編程先確定算法,再確定數(shù)據(jù)結(jié)構(gòu);面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定運(yùn)算。類(lèi)定義:class <類(lèi)名><訪(fǎng)問(wèn)控制符>: <成員函數(shù)的聲明><訪(fǎng)問(wèn)控制符>: <數(shù)據(jù)成員的聲明><成員函數(shù)的實(shí)現(xiàn)>若在類(lèi)體外實(shí)現(xiàn),則需要使用作用域運(yùn)算符“:”,用它來(lái)標(biāo)識(shí)某個(gè)成員函數(shù)是屬于哪個(gè)類(lèi)的,其定義格式如下:<函數(shù)值類(lèi)型> <類(lèi)名>:<成員函數(shù)名>(<參數(shù)表>) <函數(shù)體>類(lèi)外訪(fǎng)問(wèn)對(duì)象中的成員可以有3種方法:通過(guò)對(duì)象

7、名和成員運(yùn)算符訪(fǎng)問(wèn)對(duì)象中的成員。<對(duì)象名>.<公有成員>通過(guò)指向?qū)ο蟮闹羔樧兞吭L(fǎng)問(wèn)對(duì)象中的成員。<對(duì)象指針名> -> <公有成員>通過(guò)對(duì)象的引用訪(fǎng)問(wèn)對(duì)象中的成員。析構(gòu)函數(shù)其定義格式如下:<類(lèi)名>:<類(lèi)名>()<函數(shù)體>在一般情況下,調(diào)用構(gòu)造函數(shù)與聲明對(duì)象的順序相同,而調(diào)用析構(gòu)函數(shù)的次序正好與創(chuàng)建對(duì)象的順序相反。三種構(gòu)造函數(shù) Box(); /無(wú)參構(gòu)造函數(shù)Box(int h,int w ,int len):height(h),width(w),length(len) /帶參構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)定義<類(lèi)名

8、>(<參數(shù)表>); <類(lèi)名>(const <類(lèi)名>& <對(duì)象名>)Box(const Box& b);/復(fù)制構(gòu)造函數(shù)復(fù)制構(gòu)造函數(shù)只有一個(gè)參數(shù),并且是對(duì)同類(lèi)對(duì)象的引用。靜態(tài)成員是類(lèi)的所有對(duì)象共享的成員,而不是某個(gè)對(duì)象的成員,它在對(duì)象中不占存儲(chǔ)空間,是屬于整個(gè)類(lèi)的成員。靜態(tài)成員定義格式如下:static<靜態(tài)成員的定義>不能用參數(shù)初始化表對(duì)靜態(tài)數(shù)據(jù)成員初始化,也不能在構(gòu)造函數(shù)體內(nèi)初始化,靜態(tài)數(shù)據(jù)成員只能在類(lèi)體外進(jìn)行初始化。靜態(tài)數(shù)據(jù)成員初始化格式如下:<數(shù)據(jù)類(lèi)型> <類(lèi)名>:<靜態(tài)數(shù)據(jù)成員

9、名>=<值>在類(lèi)的成員函數(shù)中可以直接訪(fǎng)問(wèn)該類(lèi)的靜態(tài)數(shù)據(jù)成員,而不必使用成員訪(fǎng)問(wèn)運(yùn)算符或類(lèi)名限定修飾符。在類(lèi)外必須使用成員訪(fǎng)問(wèn)運(yùn)算符或類(lèi)名限定修飾符訪(fǎng)問(wèn)公共靜態(tài)數(shù)據(jù)成員。<對(duì)象名>.<靜態(tài)成員><類(lèi)名>:<靜態(tài)成員>靜態(tài)成員函數(shù)就是使用static關(guān)鍵字聲明的成員函數(shù)。 靜態(tài)成員函數(shù)可以直接訪(fǎng)問(wèn)該類(lèi)的靜態(tài)成員,但不能直接訪(fǎng)問(wèn)類(lèi)中的非靜態(tài)成員。第3章 詳解對(duì)象對(duì)象指針就是用于存放對(duì)象數(shù)據(jù)起始地址的變量。聲明對(duì)象指針的一般格式為:<類(lèi)名> *<對(duì)象指針名>對(duì)象指針的初始化一般格式為:<數(shù)據(jù)類(lèi)型> *

10、<對(duì)象指針名>=&<對(duì)象名><對(duì)象指針名>=&<對(duì)象名>通過(guò)指針訪(fǎng)問(wèn)對(duì)象成員一般格式如下:<對(duì)象指針名> -> <公有成員> boxp->volumn();(*<對(duì)象指針名>).<公有成員> (*boxp).volumn();this指針是一個(gè)特殊的隱含指針,它隱含于每一個(gè)成員函數(shù)(靜態(tài)成員函數(shù)除外)中,也就是說(shuō),每個(gè)成員函數(shù)都有一個(gè)this指針參數(shù)。this指針指向調(diào)用該函數(shù)的對(duì)象,即this指針的值是當(dāng)前被調(diào)用的成員函數(shù)所在的對(duì)象的起始地址。復(fù)制構(gòu)造函數(shù)中隱含使用th

11、is指針:TAdd(const TAdd& p) this->x=p.x; this->y=p.y; cout<<"copy constructor."<<endl;同樣也可以使用*this來(lái)標(biāo)識(shí)調(diào)用該成員函數(shù)的當(dāng)前對(duì)象。 x this->x (*this).xthis指針是一個(gè)const指針,成員函數(shù)不能對(duì)其進(jìn)行賦值。靜態(tài)成員中不能訪(fǎng)問(wèn)this指針,因?yàn)殪o態(tài)成員函數(shù)不從屬于任何對(duì)象。指向非靜態(tài)數(shù)據(jù)成員的指針一般形式為: 數(shù)據(jù)類(lèi)型名 *指針變量名;定義指向公有成員函數(shù)的指針變量的一般形式為: 數(shù)據(jù)類(lèi)型名 (類(lèi)名: *指針變量

12、名)(參數(shù)列表); 使指針變量指向一個(gè)公有成員函數(shù)的一般形式為: 指針變量名=&類(lèi)名:成員函數(shù)名常量定義格式如下:const <數(shù)據(jù)類(lèi)型名> <常量名>=<表達(dá)式>常對(duì)象是其數(shù)據(jù)成員值在對(duì)象的整個(gè)生存期間內(nèi)不能被改變的對(duì)象。const <類(lèi)名><對(duì)象名>(<初始化值>);<類(lèi)名> const <對(duì)象名>(<初始化值>);常成員函數(shù)通過(guò)常成員函數(shù)來(lái)引用本類(lèi)中的常數(shù)據(jù)成員。 <數(shù)據(jù)類(lèi)型><函數(shù)名>(<參數(shù)表>)const;聲明一維對(duì)象數(shù)組的一般格式

13、為: <類(lèi)名> <數(shù)組名><下標(biāo)表達(dá)式>第4章 運(yùn)算符重載重載為類(lèi)的成員函數(shù)格式如下:<類(lèi)名> operator <運(yùn)算符>(<參數(shù)表>)函數(shù)體A operator + (A &);+為前置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為:<type> operator +( )+為后置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為:<type> operator +(int)運(yùn)算符重載函數(shù)不能定義為靜態(tài)的成員函數(shù),因?yàn)殪o態(tài)的成員函數(shù)中沒(méi)有this指針。友元聲明以關(guān)鍵字friend開(kāi)始,只能出現(xiàn)在被訪(fǎng)問(wèn)類(lèi)

14、的定義中。具體格式如下: friend <函數(shù)值類(lèi)型> <函數(shù)名>(<參數(shù)表>);friend class <類(lèi)名> 友元函數(shù)可以訪(fǎng)問(wèn)該類(lèi)中的所有成員(公有的、私有的和保護(hù)的)通常使用友元函數(shù)來(lái)取對(duì)象中的數(shù)據(jù)成員值,而不修改對(duì)象中的成員值,保證數(shù)據(jù)安全。重載為類(lèi)的友元函數(shù)語(yǔ)法形式friend <函數(shù)值類(lèi)型> operator <運(yùn)算符>(<參數(shù)表>) <函數(shù)體>; +為前置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為:A operator +(A &a)+為后置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般

15、格式為:A operator +(A &a, int)重載提取運(yùn)算符的一般格式為:friend istream & operater >>(istream &, ClassName &);istream & operater >>(istream &is, ClassName &f)重載輸出(插入)運(yùn)算符的一般格式為:friend ostream & operater >>(ostream &, ClassName &);ostream & operater >&g

16、t;(ostream &is, ClassName &f)重載類(lèi)型轉(zhuǎn)換運(yùn)算符函數(shù)格式:operator返回基本類(lèi)型名() return 基本類(lèi)型值類(lèi)類(lèi)型轉(zhuǎn)換函數(shù)只能是成員函數(shù),不能是友元函數(shù)。轉(zhuǎn)換函數(shù)的操作數(shù)是對(duì)象。第5章 繼承與派生派生是指由基類(lèi)創(chuàng)建新類(lèi)的過(guò)程。class A int i; /基類(lèi)成員 ;class B:public A /A派生了B,B繼承了A, /B自動(dòng)擁有A的成員 int j; /定義派生類(lèi)的新成員 ;派生類(lèi)的定義格式如下:class <派生類(lèi)名>:<繼承方式> <基類(lèi)名> <派生類(lèi)新定義成員> ;派生類(lèi)繼

17、承了基類(lèi)的全部數(shù)據(jù)成員和除了構(gòu)造、析構(gòu)函數(shù)之外的全部成員函數(shù),它們?cè)谂缮?lèi)中的訪(fǎng)問(wèn)屬性由繼承方式控制。三種繼承方式下派生類(lèi)中基類(lèi)成員的訪(fǎng)問(wèn)控制權(quán)限無(wú)論是哪種繼承方式,基類(lèi)的私有成員在派生類(lèi)中都是不可被訪(fǎng)問(wèn)的。只能通過(guò)基類(lèi)的成員函數(shù)訪(fǎng)問(wèn)基類(lèi)的私有數(shù)據(jù)成員。 解決的辦法是通過(guò)成員初始化表來(lái)完成,在成員初始化表中可以顯式調(diào)用基類(lèi)構(gòu)造函數(shù)。<派生類(lèi)名>(<總參數(shù)表>):<基類(lèi)名>(<參數(shù)表1>),<對(duì)象成員名>(<參數(shù)表2>)<派生類(lèi)數(shù)據(jù)成員的初始化>構(gòu)造函數(shù)調(diào)用順序?yàn)椋夯?lèi)的構(gòu)造函數(shù)對(duì)象成員構(gòu)造函數(shù)派生類(lèi)的構(gòu)造函數(shù)。

18、析構(gòu)函數(shù)調(diào)用順序剛好相反。當(dāng)基類(lèi)中沒(méi)有顯式定義構(gòu)造函數(shù),或定義了無(wú)參構(gòu)造函數(shù)時(shí),派生類(lèi)構(gòu)造函數(shù)的初始化表可以省略對(duì)基類(lèi)構(gòu)造函數(shù)的調(diào)用,而采用隱含調(diào)用。當(dāng)基類(lèi)的構(gòu)造函數(shù)使用一個(gè)或多個(gè)參數(shù)時(shí),派生類(lèi)必須定義構(gòu)造函數(shù),提供將參數(shù)傳遞給基類(lèi)構(gòu)造函數(shù)的途徑。這時(shí),派生類(lèi)構(gòu)造函數(shù)的函數(shù)體可能為空,僅起到參數(shù)傳遞作用。如果在基類(lèi)中既定義了無(wú)參構(gòu)造函數(shù),又定義了帶參構(gòu)造函數(shù),則在定義派生類(lèi)構(gòu)造函數(shù)時(shí),既可以包含基類(lèi)構(gòu)造函數(shù)和參數(shù),也可以不包含基類(lèi)構(gòu)造函數(shù)。如果在一個(gè)派生類(lèi)中要訪(fǎng)問(wèn)基類(lèi)中的私有成員,可以將這個(gè)派生類(lèi)聲明為基類(lèi)的友元。友元關(guān)系是不能繼承的。B類(lèi)是A類(lèi)的友元,C類(lèi)是B類(lèi)的派生類(lèi),則C類(lèi)和A類(lèi)之間沒(méi)有

19、任何友元關(guān)系,除非C類(lèi)聲明A類(lèi)是友元。多繼承派生類(lèi)的定義class <派生類(lèi)名>:<繼承方式> <基類(lèi)名1>,<繼承方式> <基類(lèi)名n> <派生類(lèi)新定義成員> ;多繼承派生類(lèi)的構(gòu)造函數(shù)<派生類(lèi)名>(<總參數(shù)表>):<基類(lèi)名1>(<參數(shù)表1>),< 基類(lèi)名n> (<參數(shù)表n>) <派生類(lèi)數(shù)據(jù)成員的初始化><總參數(shù)表>必須包含完成所有基類(lèi)初始化所需的參數(shù)構(gòu)造函數(shù)調(diào)用順序是:先調(diào)用所有基類(lèi)的構(gòu)造函數(shù),再調(diào)用對(duì)象成員類(lèi)構(gòu)造函數(shù),最后調(diào)用

20、派生類(lèi)的構(gòu)造函數(shù)。處于同一層次的各基類(lèi)構(gòu)造函數(shù)的調(diào)用順序取決于定義派生類(lèi)時(shí)所指定的基類(lèi)順序,與派生類(lèi)構(gòu)造函數(shù)中所定義的成員初始化列表順序無(wú)關(guān)。如果有多個(gè)成員類(lèi)對(duì)象,則構(gòu)造函數(shù)的調(diào)用順序是對(duì)象在類(lèi)中被聲明的順序,而不是它們出現(xiàn)在成員初始化表中的順序。 析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)的調(diào)用順序相反。虛基類(lèi)虛基類(lèi)的定義格式為: class <派生類(lèi)名>:virtual <繼承方式><共同基類(lèi)名>【說(shuō)明】引進(jìn)虛基類(lèi)后,派生類(lèi)對(duì)象中只存在一個(gè)虛基類(lèi)成員的副本。虛基類(lèi)的初始化與一般多繼承的初始化在語(yǔ)法上相同,但構(gòu)造函數(shù)的調(diào)用順序有所不同,規(guī)則如下:先調(diào)用虛基類(lèi)的構(gòu)造函數(shù),

21、再調(diào)用非虛基類(lèi)的構(gòu)造函數(shù)。若同一層次中包含多個(gè)虛基類(lèi),其調(diào)用順序?yàn)槎x時(shí)的順序。若虛基類(lèi)由非虛基類(lèi)派生而來(lái),則仍按先調(diào)用基類(lèi)構(gòu)造函數(shù),再調(diào)用派生類(lèi)構(gòu)造函數(shù)的順序。如果在虛基類(lèi)中定義了帶參數(shù)的構(gòu)造函數(shù),則要在其所有派生類(lèi)(包括直接派生類(lèi)或間接派生類(lèi))中,通過(guò)構(gòu)造函數(shù)的初始化表對(duì)虛基類(lèi)進(jìn)行初始化。第6章 多態(tài)性與虛函數(shù)類(lèi)型兼容規(guī)則類(lèi)型兼容規(guī)則是指在需要基類(lèi)對(duì)象的任何地方,都可以使用公有派生類(lèi)的對(duì)象來(lái)替代。類(lèi)型兼容規(guī)則中所指的替代包括以下情況:派生類(lèi)的對(duì)象可以賦值給基類(lèi)的對(duì)象。派生類(lèi)的對(duì)象可以初始化基類(lèi)的引用。派生類(lèi)的對(duì)象的地址可以賦值給基類(lèi)的指針變量。在替代之后,派生類(lèi)對(duì)象就可以作為基類(lèi)的對(duì)象使用

22、,但只能訪(fǎng)問(wèn)從基類(lèi)繼承的成員。只能用派生類(lèi)對(duì)象對(duì)其基類(lèi)對(duì)象賦值,而不能用基類(lèi)對(duì)象對(duì)其派生類(lèi)對(duì)象賦值。同一基類(lèi)的不同派生類(lèi)對(duì)象之間也不能賦值。虛函數(shù)虛函數(shù)就是在基類(lèi)中被關(guān)鍵字virtual說(shuō)明、并在一個(gè)或多個(gè)派生類(lèi)中被重新定義的成員函數(shù)。聲明虛函數(shù)的格式如下:virtual <函數(shù)值類(lèi)型> <函數(shù)名>(<參數(shù)表>);在派生類(lèi)中重新定義虛函數(shù)時(shí),其函數(shù)原型包括返回類(lèi)型、函數(shù)名、參數(shù)個(gè)數(shù)、類(lèi)型和順序,都必須與基類(lèi)中的原型相同。一個(gè)函數(shù)一旦被聲明為虛函數(shù),則無(wú)論聲明它的類(lèi)被繼承了多少層,在每一層派生類(lèi)中該函數(shù)都保持虛函數(shù)特性。因此,在派生類(lèi)中重新定義該函數(shù)時(shí),可以省

23、略關(guān)鍵字virtual。實(shí)現(xiàn)動(dòng)態(tài)的多態(tài)性時(shí),必須使用基類(lèi)類(lèi)型的指針變量或?qū)ο笠?,并使其指向不同的派生?lèi)對(duì)象,并通過(guò)調(diào)用指針或引用所指向的虛函數(shù)才能實(shí)現(xiàn)動(dòng)態(tài)的多態(tài)性??蓪㈩?lèi)簇中具有共性的成員函數(shù)聲明為虛函數(shù),而具有個(gè)性的函數(shù)沒(méi)有必要聲明為虛函數(shù)。但是下面的情況例外:靜態(tài)成員函數(shù)不能聲明為虛函數(shù)。構(gòu)造函數(shù)不能是虛函數(shù)。內(nèi)聯(lián)成員函數(shù)不能聲明為虛函數(shù)。析構(gòu)函數(shù)可以是虛函數(shù)。虛析構(gòu)函數(shù)虛析構(gòu)函數(shù)的聲明格式如下: virtual <類(lèi)名>();如果一個(gè)類(lèi)的析構(gòu)函數(shù)是虛函數(shù),那么,由它派生的所有子類(lèi)的析構(gòu)函數(shù)也是虛函數(shù)。純虛函數(shù)用virtual聲明,沒(méi)有任何實(shí)現(xiàn)、必須由派生類(lèi)覆蓋該函數(shù)提供實(shí)現(xiàn)

24、純虛函數(shù)的聲明格式為: virtual <函數(shù)值類(lèi)型> <函數(shù)名>(<參數(shù)表>)=0;包含一個(gè)或多個(gè)純虛函數(shù)的類(lèi)稱(chēng)為抽象類(lèi)。如果派生類(lèi)沒(méi)有實(shí)現(xiàn)基類(lèi)中的所有純虛函數(shù),派生類(lèi)也是抽象類(lèi)。抽象類(lèi)無(wú)法實(shí)例化,即不能創(chuàng)建抽象類(lèi)的對(duì)象。第7章 輸入輸出iostream:I/O流類(lèi)庫(kù)的最主要的頭文件,包含了對(duì)輸入輸出流進(jìn)行操作所需的基本信息,還包括cin、cout、cerr和clog共4個(gè)流對(duì)象。fstream:用于用戶(hù)管理的文件的I/O操作。strstream:用于字符串流I/O。stdiostream:用于混合使用C和C+的I/O操作。iomanip:使用格式化I/O

25、時(shí)應(yīng)包含此頭文件。用setf函數(shù)設(shè)置狀態(tài)標(biāo)志, 其一般格式如下:long ios:setf(long flags)清除狀態(tài)標(biāo)志用unsetf函數(shù)清除狀態(tài)標(biāo)志,其一般格式如下:long ios:unsetf(long flags)用函數(shù)flags取狀態(tài)標(biāo)志有兩種形式,其格式分別如下:long ios:flags()/返回與流相關(guān)的當(dāng)前狀態(tài)標(biāo)志值long ios:flags(long flag)/將流的狀態(tài)標(biāo)志值設(shè)置為flag,并返回設(shè)置前的狀態(tài)標(biāo)志值。以上三組函數(shù)必須用流類(lèi)對(duì)象(cin或cout)來(lái)調(diào)用,其格式如下:<流對(duì)象名>.<函數(shù)名>(ios:<狀態(tài)標(biāo)志>

26、;)cout.setf(ios:showpos);cout.setf(ios:scientific);cout.setf(ios:showpos| ios:scientific);設(shè)置輸出寬度函數(shù)有兩種形式,其格式分別如下: int ios:width(int len) int ios:width()第一種形式是設(shè)置輸出寬度,并返回原來(lái)的輸出寬度;第二種形式是返回當(dāng)前輸出寬度,默認(rèn)輸出寬度為0。只對(duì)其后的第一個(gè)輸出項(xiàng)有效。填充字符的作用是當(dāng)輸出值不滿(mǎn)輸出寬度時(shí)用填充字符來(lái)填充,默認(rèn)填充字符為空格。它與width()函數(shù)配合使用,否則沒(méi)有意義。設(shè)置填充字符函數(shù)有兩種形式,其格式分別如下: cha

27、r ios:fill(char ch) char ios:fill()第一種形式是重新設(shè)置填充字符,并返回設(shè)置前的填充字符;第二種形式是返回當(dāng)前的填充字符。設(shè)置浮點(diǎn)數(shù)輸出精度有兩種形式,其格式分別如下: int ios:precision(int p) int ios:precision()第一種形式是重新設(shè)置輸出精度,并返回設(shè)置前的輸出精度;第二種形式是返回當(dāng)前的輸出精度。默認(rèn)輸出精度為6 用get函數(shù)讀入一個(gè)字符(1)不帶參數(shù)的get函數(shù)cin.get()用來(lái)從指定的輸入流中提取一個(gè)字符(包括空白字符),函數(shù)的返回值就是讀入的字符。若遇到輸入流中的文件結(jié)束符,則函數(shù)返回文件結(jié)束標(biāo)志EOF。

28、(2)有一個(gè)參數(shù)的get函數(shù)cin.get(ch)用來(lái)從輸入流中讀取一個(gè)字符,賦給字符變量ch。讀取成功返回非0值(真),如失敗(遇文件結(jié)束符)則函數(shù)返回0值(假)。3)有三個(gè)參數(shù)的get函數(shù)cin.get(字符數(shù)組/字符指針,字符個(gè)數(shù)n,終止字符)從輸入流中讀取n-1個(gè)字符,賦給指定的字符數(shù)組(或字符指針指向的數(shù)組)。如果在讀取n-1個(gè)字符之前遇到指定的終止字符,則提前讀取結(jié)束。如果讀取成功返回非0值(真),如失敗(遇文件結(jié)束符)則函數(shù)返回0值(假)。用getline函數(shù)讀入一行字符cin.getline(字符數(shù)組(或字符指針),字符個(gè)數(shù)n,終止字符)從輸入流中讀取一行字符,其用法與帶3個(gè)參數(shù)的get函數(shù)類(lèi)似。eof函數(shù)無(wú)參函數(shù),表示文件結(jié)束。從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),返回非零值(真),否則為0(假)。 while(!cin.eof()peek函數(shù)無(wú)參函數(shù),表示“觀(guān)察”,觀(guān)測(cè)下一個(gè)字符。返回值是當(dāng)前指針指向的當(dāng)前字符,但只是觀(guān)測(cè),指針仍停留在當(dāng)前位置,并不后

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論