秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)

上傳人:feng****ing 文檔編號(hào):50877481 上傳時(shí)間:2022-01-22 格式:DOC 頁(yè)數(shù):24 大?。?24KB
收藏 版權(quán)申訴 舉報(bào) 下載
《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第1頁(yè)
第1頁(yè) / 共24頁(yè)
《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第2頁(yè)
第2頁(yè) / 共24頁(yè)
《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)_第3頁(yè)
第3頁(yè) / 共24頁(yè)

本資源只提供3頁(yè)預(yù)覽,全部文檔請(qǐng)下載后查看!喜歡就下載吧,查找使用更方便

18 積分

下載資源

資源描述:

《《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《C面向?qū)ο蟪绦蛟O(shè)計(jì)》譚浩強(qiáng)版復(fù)習(xí)總結(jié)(24頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

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

2、emplatevtypename 或 class T> 函數(shù)定義 例子:templatevtypename T> T max(T a,T b){ return(a>b)? a:b; } 定義函數(shù)模板時(shí)可以使用多個(gè)類型參數(shù),每個(gè)類型參數(shù)前面只需加上關(guān)鍵字 type name或class用逗號(hào)分隔: template vclass T1, class T2, class T3> 例子:templatevclass T1, class T2> T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; 有默認(rèn)參數(shù)的函數(shù):實(shí)參與形參的結(jié)合是從左至右進(jìn)

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

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

5、函數(shù)中的局部變量 new運(yùn)算從堆中分配一塊與 <類型〉相適應(yīng)的大小為 <元素個(gè)數(shù)〉的數(shù)組存儲(chǔ)空間, 若分配成功,將這塊存儲(chǔ)空間的起始地址存入 <指針變量名 >,否則置 <指針變量 名〉的值為NULL(空指針值,即0)。new的使用格式為: <指針變量名>=new <類型 >[<元素個(gè)數(shù)>]; delete運(yùn)算符用來(lái)釋放<指針變量名 >指向的動(dòng)態(tài)存儲(chǔ)空間。使用格式如下: delete <指針變量名 > 或 delete]] <指針變量名> 第2章面向?qū)ο蠡靖拍? 面向過(guò)程編程與面向?qū)ο缶幊痰膮^(qū)別: 面向過(guò)程編程先確定算法,再確定數(shù)據(jù)結(jié)構(gòu); 面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定運(yùn)算。

6、 類定義: class類名> { <訪問(wèn)控制符>: V成員函數(shù)的聲明> V訪問(wèn)控制符>: V數(shù)據(jù)成員的聲明> }; V成員函數(shù)的實(shí)現(xiàn)> 若在類體外實(shí)現(xiàn),則需要使用作用域運(yùn)算符“::”,用它來(lái)標(biāo)識(shí)某個(gè)成員函數(shù)是屬 于哪個(gè)類的,其定義格式如下: V函數(shù)值類型> V類名>::V成員函數(shù)名>(<參數(shù)表>) { V函數(shù)體> } 類外訪問(wèn)對(duì)象中的成員可以有 3種方法: 通過(guò)對(duì)象名和成員運(yùn)算符訪問(wèn)對(duì)象中的成員。 V對(duì)象名〉.V公有成員> 通過(guò)指向?qū)ο蟮闹羔樧兞吭L問(wèn)對(duì)象中的成員。 V對(duì)象指針名> -> V公有成員> 通過(guò)對(duì)象的引用訪問(wèn)對(duì)象中的成員 析構(gòu)函數(shù)其定義格式如

7、下: V類名>::~類名>() { V函數(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(le n){} //帶參構(gòu)造函數(shù) 復(fù)制構(gòu)造函數(shù)定義 V類名>(<參數(shù)表>); <類名>(const類名〉& V對(duì)象名>) Box(const Box & b);復(fù)制構(gòu)造函數(shù) 復(fù)制構(gòu)造函數(shù)只有一個(gè)參數(shù),并且是對(duì)同類對(duì)象的引用。 靜態(tài)成員是類的所有對(duì)象共享的成員,而

8、不是某個(gè)對(duì)象的成員,它在對(duì)象中不占 存儲(chǔ)空間,是屬于整個(gè)類的成員。 靜態(tài)成員定義格式如下: static <靜態(tài)成員的定義>; 不能用參數(shù)初始化表對(duì)靜態(tài)數(shù)據(jù)成員初始化, 也不能在構(gòu)造函數(shù)體內(nèi)初始化,靜 態(tài)數(shù)據(jù)成員只能在類體外進(jìn)行初始化。 靜態(tài)數(shù)據(jù)成員初始化格式如下: <數(shù)據(jù)類型 > <類名 >::<靜態(tài)數(shù)據(jù)成員名 >=<值>; 在類的成員函數(shù)中可以直接訪問(wèn)該類的靜態(tài)數(shù)據(jù)成員,而不必使用成員訪問(wèn)運(yùn)算 符或類名限定修飾符。 在類外必須使用成員訪問(wèn)運(yùn)算符或類名限定修飾符訪問(wèn)公共靜態(tài)數(shù)據(jù)成員。 <對(duì)象名〉.<靜態(tài)成員> V類名>::<靜態(tài)成員> 靜態(tài)成員函數(shù)就是使用static關(guān)

9、鍵字聲明的成員函數(shù)。 靜態(tài)成員函數(shù)可以直接訪問(wèn)該類的靜態(tài)成員,但不能直接訪問(wèn)類中的非靜態(tài)成員。 第3章詳解對(duì)象 對(duì)象指針就是用于存放對(duì)象數(shù)據(jù)起始地址的變量。 聲明對(duì)象指針的一般格式為: <類名> *<對(duì)象指針名>; 對(duì)象指針的初始化一般格式為: <數(shù)據(jù)類型> *<對(duì)象指針名>=&<對(duì)象名>; <對(duì)象指針名>=&<寸象名>; 通過(guò)指針訪問(wèn)對(duì)象成員一般格式如下: V對(duì)象指針名 > -> <公有成員> boxp->volumn(); (*<對(duì)象指針名>)■<公有成員> (*boxp).volumn(); this指針是一個(gè)特殊的隱含指針,它隱含于每一個(gè)成員函數(shù)(靜態(tài)成員函

10、數(shù)除外) 中,也就是說(shuō),每個(gè)成員函數(shù)都有一個(gè)this指針參數(shù)。 this指針指向調(diào)用該函數(shù)的對(duì)象,即this指針的值是當(dāng)前被調(diào)用的成員函數(shù)所在 的對(duì)象的起始地址。 復(fù)制構(gòu)造函數(shù)中隱含使用this指針: TAdd(const TAdd & p) { this->x=p.x; this->y=p.y; coutvv"copy constructor."vvendl; } 同樣也可以使用*this來(lái)標(biāo)識(shí)調(diào)用該成員函數(shù)的當(dāng)前對(duì)象 x this->x (*this).x this指針是一個(gè)con st指針,成員函數(shù)不能對(duì)其進(jìn)行賦值。 靜態(tài)成員中不能訪問(wèn)this指針,因?yàn)殪o態(tài)成員函數(shù)

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

12、><函數(shù)名>(<參數(shù)表>)const; const成員和非const成員之間 的調(diào)用關(guān)系 數(shù)據(jù)成員 非Gonst成員函數(shù) 8門航成員函數(shù) 非const數(shù)據(jù)成員 可以引用,也可 以改變值 可以引用,但不 可以改變值 const數(shù)據(jù)成員 可以引用,但不 可以改變值 可以引用,但不 可以改變值 const對(duì)象的數(shù)據(jù) 成員 不允許引用和改 變值 可以引用,但不 可以改變值 聲明一維對(duì)象數(shù)組的一般格式為: <類名 > <數(shù)組名>[<下標(biāo)表達(dá)式>] 第4章運(yùn)算符重載 重載為類的成員函數(shù)格式如下: <類名> operator運(yùn)算符 >(<參數(shù)表>) {函數(shù)體}

13、A operator + (A &); ++為前置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為: <type> operator ++() ++為后置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為: <type> operator ++(int) A 込b; A operator ++( ){….} b=a-H-; A operator -H-(int){ } 運(yùn)算符重載函數(shù)不能定義為靜態(tài)的成員函數(shù),因?yàn)殪o態(tài)的成員函數(shù)中沒(méi)有 this 指針。 友元聲明以關(guān)鍵字friend開(kāi)始,只能出現(xiàn)在被訪問(wèn)類的定義中。具體格式 如下: friend <函數(shù)值類型 > <函數(shù)名>(<參數(shù)表>);

14、 friend class 類名 >; 友元函數(shù)可以訪問(wèn)該類中的所有成員(公有的、私有的和保護(hù)的) 通常使用友元函數(shù)來(lái)取對(duì)象中的數(shù)據(jù)成員值, 而不修改對(duì)象中的成員值,保證數(shù) 據(jù)安全。 class A [ class B{ void ftin( B &); }; 既是類A的成員函數(shù) friend void^:fun( B &); J反是知無(wú)芫甌 重載為類的友元函數(shù)語(yǔ)法形式 friend <函數(shù)值類型> operator <運(yùn)算符>(<參數(shù)表>) {<函數(shù)體>;} ++為前置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為: A operator ++(A

15、&a) ++為后置運(yùn)算符時(shí),它的運(yùn)算符重載函數(shù)的一般格式為: A 跖 b; " b=++a; A operator ++(A a ){ ?…} b=a++; A operator -H-(A a, int){ } A operator ++(A &a, int) 重載提取運(yùn)算符的一般格式為: friend istream & operater >>(istream &, ClassName &); istream & operater >>(istream &is, ClassName &f){} 重載輸出(插入)運(yùn)算符的一般格式為: friend ostream

16、& operater >>(ostream &, ClassName &); ostream & operater >>(ostream &is, ClassName &f){} 重載類型轉(zhuǎn)換運(yùn)算符函數(shù)格式: operator〈返回基本類型名〉() return〈基本類型值〉 } 類類型轉(zhuǎn)換函數(shù)只能是成員函數(shù),不能是友元函數(shù)。轉(zhuǎn)換函數(shù)的操作數(shù)是對(duì)象

17、 第5章繼承與派生 派生是指由基類創(chuàng)建新類的過(guò)程。 class A { int i; //基類成員}; class B:public A //派生了 B, B 繼承了 A, 〃B自動(dòng)擁有A的成員 {int j; //定義派生類的新成員}; 派生類的定義格式如下: class派生類名 >:<繼承方式 > <基類名> { <派生類新定義成員>}; 派生類繼承了基類的全部數(shù)據(jù)成員和除了構(gòu)造、析構(gòu)函數(shù)之外的全部成員函數(shù), 它們?cè)谂缮愔械脑L問(wèn)屬性由繼承方式控制。 三種繼承方式下派生類中基類成員的訪問(wèn)控制權(quán)限 基美、繼承 成員 公有繼承 私有繼承 保護(hù)繼承 公有成員

18、公有 私有 保護(hù) 秋有成員 派生類成員不 可訪問(wèn) 派生類成員不 可訪問(wèn) 派生類成員 不可訪問(wèn) 保護(hù)成員 r保護(hù) 私有 保護(hù)1 無(wú)論是哪種繼承方式,基類的私有成員在派生類中都是不可被訪問(wèn)的。 只能通過(guò) 基類的成員函數(shù)訪問(wèn)基類的私有數(shù)據(jù)成員。 解決的辦法是通過(guò)成員初始化表來(lái)完成,在成員初始化表中可以顯式調(diào)用基類構(gòu) 造函數(shù)。 V派生類名 >(<總參數(shù)表 >):<基類名〉(V參數(shù)表1>),V對(duì)象成員名>(<參數(shù)表2>) { V派生類數(shù)據(jù)成員的初始化> }; 構(gòu)造函數(shù)調(diào)用順序?yàn)椋夯惖臉?gòu)造函數(shù)一對(duì)象成員構(gòu)造函數(shù)一派生類的構(gòu)造函 數(shù)。 析構(gòu)函數(shù)調(diào)用順序剛好相反。

19、 當(dāng)基類中沒(méi)有顯式定義構(gòu)造函數(shù), 或定義了無(wú)參構(gòu)造函數(shù)時(shí),派生類構(gòu)造函數(shù)的 初始化表可以省略對(duì)基類構(gòu)造函數(shù)的調(diào)用,而采用 隱含調(diào)用。 當(dāng)基類的構(gòu)造函數(shù)使用一個(gè)或多個(gè)參數(shù)時(shí),派生類必須定義構(gòu)造函數(shù),提供將參 數(shù)傳遞給基類構(gòu)造函數(shù)的途徑。這時(shí),派生類構(gòu)造函數(shù)的函數(shù)體可能為空,僅起 到參數(shù)傳遞作用。 如果在基類中既定義了無(wú)參構(gòu)造函數(shù),又定義了帶參構(gòu)造函數(shù),則在定義派生類 構(gòu)造函數(shù)時(shí),既可以包含基類構(gòu)造函數(shù)和參數(shù),也可以不包含基類構(gòu)造函數(shù)。 如果在一個(gè)派生類中要訪問(wèn)基類中的私有成員,可以將這個(gè)派生類聲明為基類 的友元。 Base { friend class Derive; i-?? ?

20、? Derive:public Base { 直接使用罪中的私有成員 ■b 友元關(guān)系是不能繼承的。B類是A類的友元,C類是B類的派生類,則C類和A 類之間沒(méi)有任何友元關(guān)系,除非 C類聲明A類是友元。 多繼承派生類的定義 class 派生類名 >:<繼承方式> <基類名1>,…,<繼承方式 > <基類名n> { <派生類新定義成員>}; 多繼承派生類的構(gòu)造函數(shù) V派生類名 >(<總參數(shù)表>):<基類名1>(<參數(shù)表1>),…,< 基類名n>(V參數(shù)表n>) { <派生類數(shù)據(jù)成員的初始化> }; <總參數(shù)表〉必須包含完成所有基類初始化所需的參數(shù) 構(gòu)造函數(shù)調(diào)用順序是:先調(diào)用

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

22、的調(diào)用順序有 所不同,規(guī)則如下: 先調(diào)用虛基類的構(gòu)造函數(shù),再調(diào)用 非虛基類的構(gòu)造函數(shù)。 若同一層次中包含多個(gè)虛基類,其調(diào)用順序?yàn)?定義時(shí)的順序。 若虛基類由非虛基類派生而來(lái),則仍按先調(diào)用基類構(gòu)造函數(shù),再調(diào)用派生類構(gòu)造 函數(shù)的順序。 如果在虛基類中定義了帶參數(shù)的構(gòu)造函數(shù),則要在其所有派生類(包括直接派生 類或間接派生類)中,通過(guò)構(gòu)造函數(shù)的初始化表對(duì)虛基類進(jìn)行初始化。 dsss A class C:virtual public A { A(int i){}…}; { c(int n):A(n)O…}; cIbss B:virtual public A class D:public p

23、ublic C { B(int n):A(n){}…}; { D(int n):A(n)fB(n\C(n){}.., }; 第6章多態(tài)性與虛函數(shù) 類型兼容規(guī)則 類型兼容規(guī)則是指在需要基類對(duì)象的任何地方, 都可以使用公有派生類的對(duì)象來(lái) 替代。 類型兼容規(guī)則中所指的替代包括以下情況: 派生類的對(duì)象可以賦值給基類的對(duì)象。 派生類的對(duì)象可以初始化基類的引用。 派生類的對(duì)象的地址可以賦值給基類的指針變量。 在替代之后,派生類對(duì)象就可以作為基類的對(duì)象使用, 但只能訪問(wèn)從基類繼承的 成員。 只能用派生類對(duì)象對(duì)其基類對(duì)象賦值,而不能用基類對(duì)象對(duì)其派生類對(duì)象賦值。 同一基類的不同派生類對(duì)

24、象之間也不能賦值。 虛函數(shù) 虛函數(shù)就是在基類中被關(guān)鍵字 virtual說(shuō)明、并在一個(gè)或多個(gè)派生類中被重新定義 的成員函數(shù)。 聲明虛函數(shù)的格式如下: virtual <函數(shù)值類型 > <函數(shù)名>(<參數(shù)表>); 在派生類中重新定義虛函數(shù)時(shí),其函數(shù)原型包括返回類型、函數(shù)名、參數(shù)個(gè)數(shù)、 類型和順序,都必須與 基類中的原型相同。 一個(gè)函數(shù)一旦被聲明為虛函數(shù),則無(wú)論聲明它的類被繼承了多少層, 在每一層派 生類中該函數(shù)都保持虛函數(shù)特性。 因此,在派生類中重新定義該函數(shù)時(shí), 可以省 略關(guān)鍵字virtual。 實(shí)現(xiàn)動(dòng)態(tài)的多態(tài)性時(shí),必須使用基類類型的指針變量或?qū)ο笠?,并使其指向?同的派生類對(duì)象

25、,并通過(guò)調(diào)用指針或引用所指向的虛函數(shù)才能實(shí)現(xiàn)動(dòng)態(tài)的多態(tà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 ~<類名 >(); 如果一個(gè)類的析構(gòu)函數(shù)是虛函數(shù),那么,由它派生的所有子類的析構(gòu)函數(shù)也是 虛函數(shù)。 純虛函數(shù)用virtual聲明,沒(méi)有任何實(shí)現(xiàn)、必須由派生類覆蓋該函數(shù)提供實(shí)現(xiàn) 純虛函數(shù)的聲明格式為: virtual <函數(shù)值類型 > <函數(shù)

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

27、如下: 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ù)必須用流類對(duì)象(cin或cout)來(lái)調(diào)用,其格式如下: <流對(duì)象名>■<函數(shù)名>(ios::<^態(tài)標(biāo)志>) cout.setf(ios:

28、: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)輸出值不滿輸出寬度時(shí)用填充字符來(lái)填充, 默認(rèn)填充字符為 空格。它與width()函數(shù)配合使用,否則沒(méi)有意義。 設(shè)置填充字符函數(shù)有兩種形式,

29、其格式分別如下: char 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ù)的返回值

30、就 是讀入的字符。 若遇到輸入流中的文件結(jié)束符,則函數(shù)返回文件結(jié)束標(biāo)志 EOF (2) 有一個(gè)參數(shù)的get函數(shù) cin.get(ch用來(lái)從輸入流中讀取一個(gè)字符,賦給字符變量 ch。 讀取成功返回非0值(真),如失?。ㄓ鑫募Y(jié)束符)則函數(shù)返回 0值(假)。 3)有三個(gè)參數(shù)的get函數(shù) cin.get字符數(shù)組/字符指針,字符個(gè)數(shù)n,終止字符) 從輸入流中讀取n-1個(gè)字符,賦給指定的字符數(shù)組(或字符指針指向的數(shù)組)。 如果在讀取n-1個(gè)字符之前遇到指定的終止字符,則提前讀取結(jié)束。 如果讀取成功返回非0值(真),如失?。ㄓ鑫募Y(jié)束符)則函數(shù)返回0值(假)。 用getline函數(shù)讀

31、入一行字符 cin.getline字符數(shù)組(或字符指針),字符個(gè)數(shù)n,終止字符) 從輸入流中讀取一行字符,其用法與帶 3個(gè)參數(shù)的get函數(shù)類似。 eof函數(shù) 無(wú)參函數(shù),表示文件結(jié)束。 從輸入流讀取數(shù)據(jù),如果到達(dá)文件末尾(遇文件結(jié)束符),返回非零值(真), 否則為0 (假) 0 while (! cin.eof ()) peek函數(shù) 無(wú)參函數(shù),表示“觀察”,觀測(cè)下一個(gè)字符。 返回值是當(dāng)前指針指向的當(dāng)前字符,但只是觀測(cè),指針仍停留在當(dāng)前位置,并 不后移。 如果要訪問(wèn)的字符是文件結(jié)束符,則函數(shù)值是 EOF0 c=cin.peek(); putback 函數(shù) 將前面用get

32、或getline函數(shù)從輸入流中讀取的字符 ch返回到輸入流,插入到當(dāng) 前指針位置,以供后面讀取。 控制符不屬于任何類成員,定義在iomanip頭文件中 設(shè)置輸入/輸出寬度setw(int) 用整型參數(shù)來(lái)制定輸入/輸出域的寬度。使用時(shí)只對(duì)其后一項(xiàng)輸入/輸出有效。 當(dāng)用于輸出時(shí),若實(shí)際寬度小于設(shè)置寬度時(shí),數(shù)據(jù)向右對(duì)齊,反之則按數(shù)據(jù)的 實(shí)際寬度輸出。 當(dāng)用于輸入時(shí),若輸入的數(shù)據(jù)寬度超過(guò)設(shè)置寬度時(shí),超出的數(shù)據(jù)部分被截?cái)喽?被作為下一項(xiàng)輸入內(nèi)容。 設(shè)置輸出填充字符setfill(char) 與ios::fill相同,常與setw(int)聯(lián)合使用,從而向不滿設(shè)置輸出寬度的空間填入 指定的

33、字符,不設(shè)置則填空格。 設(shè)置后直至下一次設(shè)置前一直有效。 參數(shù)可以是字符常量或字符變量。 設(shè)置輸出精度setprecision(int) 指明輸出實(shí)數(shù)的有效位數(shù)。 參數(shù)為0時(shí),按默認(rèn)有效位數(shù)6輸出。 在以fixed形式和scientific形式輸出時(shí)參數(shù)為小數(shù)位數(shù)。 setiosflags(ios::fixe用定點(diǎn)方式表示實(shí)數(shù)。 setiosflags(ios::scientif用科學(xué)記數(shù)法方式表示實(shí)數(shù)。 如果setprecision(n與 setiosflags(ios::fixe合用,可以控制小數(shù)點(diǎn)右邊的數(shù)字個(gè) 數(shù)。 女口果 setprecision(n與 setios

34、flags(ios::scientif合合用,可以控制科學(xué)記數(shù)法中尾數(shù) 的小數(shù)位數(shù)。 setiosflags(ios::lef輸出數(shù)據(jù)左對(duì)齊 setiosflags(ios::rigl輸出數(shù)據(jù)右對(duì)齊 設(shè)置輸入/輸出整型數(shù)數(shù)制dec、hex和oct。 控制換行的控制符endl 代表輸出單字符“ \0”的控制符ends open()函數(shù)的原型在fstream中定義。其原型為: void open(char *filename,int mod,int access); 其中第一個(gè)參數(shù)是用來(lái)傳遞文件名; 第二個(gè)參數(shù)的值決定文件的使用方式; 第三 個(gè)參數(shù)的值決定文件的訪問(wèn)方式。 對(duì)于ifstream 流類,mod 的值為ios::in;對(duì)于 ofstream 流類,mod的值為ios::out 歡迎下載 學(xué)習(xí)好資料

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!