freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c程序設(shè)計(jì)精華(留存版)

  

【正文】 向量與泛型算法 23 出圈游戲 25第八章 多態(tài)性和虛函數(shù) 25 多態(tài)性 25 虛函數(shù) 25 多重繼承與虛函數(shù) 27 類成員函數(shù)的指針與多態(tài)性 27第9章 運(yùn)算符重載及流類庫(kù) 27 運(yùn)算符重載 27 流類庫(kù) 28 文件流 31第10章 面向?qū)ο笤O(shè)計(jì)實(shí)例 32 過程抽象和數(shù)據(jù)抽象 32 發(fā)現(xiàn)對(duì)象并建立對(duì)象層 33 定義數(shù)據(jù)成員和成員函數(shù) 33 如何發(fā)現(xiàn)基類和派生類結(jié)構(gòu) 34 接口繼承與實(shí)現(xiàn)繼承 34 設(shè)計(jì)實(shí)例 35第一章 認(rèn)識(shí)C++的對(duì)象 初識(shí)C++的函數(shù)和對(duì)象一般稱現(xiàn)實(shí)世界中客觀存在的事物為對(duì)象。函數(shù)都需要有類型說明。define中的名字與C++中的標(biāo)識(shí)符有相同的形式,為了區(qū)別,往往用大寫字母來(lái)表示(標(biāo)識(shí)符用小寫字母),這也適合const語(yǔ)句。”,再選用數(shù)據(jù)類型與之配合。”將上面的x的值改變?yōu)?6。結(jié)構(gòu)化程序設(shè)計(jì)使用的是功能抽象,面向?qū)ο蟪绦蛟O(shè)計(jì)不僅能進(jìn)行功能抽象,而且能進(jìn)行數(shù)據(jù)抽象。類的作用是定義對(duì)象。類對(duì)象一般都包括數(shù)據(jù)成員和成員函數(shù),如果在C++沿用C語(yǔ)言的說法,則對(duì)象的值就是對(duì)象所有數(shù)據(jù)成員的值,約定參數(shù)傳遞中傳遞“對(duì)象值”是指對(duì)象的數(shù)據(jù)成員值,傳遞“對(duì)象地址值”是指對(duì)象的首地址值。這時(shí)函數(shù)并沒有對(duì)形參對(duì)象初始化,即沒有指定形參對(duì)象是哪個(gè)對(duì)象的別名。非void類型的函數(shù)必須向調(diào)用者返回一個(gè)值。C++的多態(tài)性又被直觀地稱為“一個(gè)名字,多個(gè)函數(shù)”。 定義類像C語(yǔ)言構(gòu)造結(jié)構(gòu)一樣,類也是一種用戶自己構(gòu)造的數(shù)據(jù)類型并遵循C++的規(guī)定。 使用類的對(duì)象對(duì)象和引用都使用運(yùn)算符“.”訪問對(duì)象的成員,指針則使用“ ”運(yùn)算符。程序員不能在程序中顯式地調(diào)用構(gòu)造函數(shù),構(gòu)造函數(shù)是自動(dòng)調(diào)用的。為了不改變?cè)袑?duì)象,更普通的形式是像下面這樣使用const限定:A::A(const A amp。 析構(gòu)函數(shù)與運(yùn)算符delete運(yùn)算符delete與析構(gòu)函數(shù)一起工作。注意,指向?qū)ο蟮闹羔樀乃阈g(shù)運(yùn)算規(guī)則與C語(yǔ)言的一樣,但指向?qū)ο蟮闹羔槻荒苋?shù)據(jù)成員的地址,也不能去成員函數(shù)的地址。class Empty{}。在這種情況下,這個(gè)類的對(duì)象只能隸屬于惟一的整體對(duì)象并與它同生同滅,稱這種情況為“組合”,它們之間的關(guān)聯(lián)關(guān)系比第一種強(qiáng),具有管理組成部分的責(zé)任,使用實(shí)心菱形表示。(4)對(duì)象的狀態(tài)只能被自己的行為所改變?!昂昝焙汀疤鎿Q正文”之間至少有一個(gè)空格。如果標(biāo)識(shí)符identifier已被define定義,則defined(identifier)為真,否則為假。在進(jìn)行初始化之前,必須進(jìn)行成員名限定。友元函數(shù)可以存取私有成員、公有成員和保護(hù)成員。這種友元關(guān)系也不具有交換性,即當(dāng)說明類A是類B的友元時(shí),類B不一定是類A的友元。const放在函數(shù)聲明之前意味著返回值是常量,但這不符合語(yǔ)法。為了支持這一封裝,C++包含了指向類成員的指針。在使用指向類成員函數(shù)的指針訪問對(duì)象的某個(gè)成員函數(shù)時(shí),必須指定一個(gè)對(duì)象。它是3個(gè)關(guān)鍵字public、private、protected中的一個(gè)。注意:靜態(tài)成員可以被繼承,這時(shí)基類對(duì)象和派生類的對(duì)象共享該靜態(tài)成員。 作用域分辨符和成員名限定從類中派生其他類可能導(dǎo)致幾個(gè)類使用同一個(gè)成員函數(shù)名或數(shù)據(jù)成員名。在類中可以像使用其他類型(如int或double)那樣使用模板參數(shù)。 定義向量列表向量(vector)類模板定義在頭文件vector中,它提供4種構(gòu)造函數(shù),用來(lái)定義由各元素組成的列表。聲明逆向泛型指針使用reverse_iterator。):向it所指向的向量位置前插入一個(gè)對(duì)象。此外,編譯器也為類增加一個(gè)數(shù)據(jù)成員,這個(gè)數(shù)據(jù)成員是一個(gè)指向該虛函數(shù)表的指針,通常稱為vptr。產(chǎn)生運(yùn)行時(shí)的多態(tài)性有如下3個(gè)前提:(1)類之間的繼承關(guān)系滿足賦值兼容性規(guī)則。一個(gè)抽象類只能作為基類來(lái)派生新類,不能說明抽象類的對(duì)象。 運(yùn)算符重載的實(shí)質(zhì)C++是由函數(shù)組成的,在C++內(nèi)部,任何運(yùn)算都是通過函數(shù)來(lái)實(shí)現(xiàn)的。顯然,插入符函數(shù)的第2個(gè)參數(shù)使用引用方式比直接使用對(duì)象名的可讀性要好一些。注意不能自己定義新的運(yùn)算符,只能是把C++原有的運(yùn)算符用到自己設(shè)計(jì)的類上面去。這看起來(lái)很像數(shù)據(jù)在流動(dòng),于是把接收輸出數(shù)據(jù)的地方叫做目標(biāo),把輸入數(shù)據(jù)來(lái)自的地方叫做源。對(duì)單字符來(lái)講,它將舍去空格,直到讀到字符為止。 使用ios_base類ios_base類派生ios類,ios類又是istream類和ostream類的虛基類。事實(shí)上,可以將cin視為類istream的一個(gè)對(duì)象,而將cout視為類ostream的對(duì)象。 流類庫(kù)C++的流類庫(kù)由幾個(gè)進(jìn)行I/O操作的基礎(chǔ)類和幾個(gè)支持特定種類的源和目標(biāo)的I/O操作的類組成。顯然,運(yùn)算符“”重載函數(shù)有兩個(gè)參數(shù),第1個(gè)是ostream類的一個(gè)引用,第2個(gè)是自定義類型的一個(gè)對(duì)象。對(duì)象名){return output。第9章 運(yùn)算符重載及流類庫(kù) 運(yùn)算符重載 重載對(duì)象的賦值運(yùn)算符編譯器在默認(rèn)情況下為每個(gè)類生成一個(gè)默認(rèn)的賦值操作,用于同類的兩個(gè)對(duì)象之間相互賦值。 純虛函數(shù)與抽象類在許多情況下,不能再基類中為虛函數(shù)給出一個(gè)有意義的定義,這時(shí)可以將它說明為純虛函數(shù),將其定義留給派生類去做。 虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)性的條件關(guān)鍵字virtual指示C++編譯器對(duì)調(diào)用虛函數(shù)進(jìn)行動(dòng)態(tài)聯(lián)編。這些成員函數(shù)的地址翻譯過程與其對(duì)象的內(nèi)存地址無(wú)關(guān)。(3)operator[](size_type,n):返回向量中的第n+1個(gè)對(duì)象(下標(biāo)為n的向量元素)。在向量中,泛型指針是在底層指針的行為之上提供一層抽象化機(jī)制,取代程序原來(lái)的“指針直接操作方式”??梢杂靡粋€(gè)非模板類為一組模板提供一種共同的實(shí)現(xiàn)方法。利用類模板能大大簡(jiǎn)化程序設(shè)計(jì)。因?yàn)橄拗屏藬?shù)據(jù)成員和成員函數(shù)的訪問權(quán)限,所以用的比較少。(2)基類的保護(hù)成員在派生類中依然是保護(hù)的。 單一繼承 單一繼承的一般形式在C++,聲明單一繼承的一般形式如下:class 派生類名:訪問控制 基類名{private:成員聲明列表protected:成員聲明列表public:成員聲明列表}。 //指向類A對(duì)象x的指針px(x.*pafn)()。volatile關(guān)鍵字的使用方法與const類似,但因其很少用,此處不介紹。但有時(shí)僅希望將參數(shù)的值提供給函數(shù)使用,并不允許函數(shù)改變對(duì)象的值,這時(shí)可以使用常引用作為參數(shù)。一個(gè)類的成員函數(shù)(包括構(gòu)造函數(shù)和析構(gòu)函數(shù))可以通過使用friend說明為另一個(gè)類的友元。靜態(tài)對(duì)象具有如下性質(zhì):(1)構(gòu)造函數(shù)在代碼執(zhí)行過程中,第一次遇到它的時(shí)候變量定義時(shí)被調(diào)用,但直到整個(gè)程序結(jié)束之前僅調(diào)用一次。析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)正好相反。error使用的形式如下:error 出錯(cuò)信息“出錯(cuò)信息”是一個(gè)字符序列。例如:include\user\注意:由于編譯指令不是C++的一部分,因此,在這里表示反斜杠時(shí)只使用一個(gè)反斜杠。對(duì)象的屬性和行為是對(duì)象定義的組成要素,分別代表了對(duì)象的靜態(tài)和動(dòng)態(tài)特征。C++語(yǔ)言中的“聚合”隱含了兩種實(shí)現(xiàn)方式,第一種方式是獨(dú)立地定義,可以屬于多個(gè)整體對(duì)象,并具有不同生存期。 //不完全的類聲明MenbersOnly *club。 一個(gè)類的對(duì)象作為另一個(gè)類的成員 類和對(duì)象的性質(zhì) 對(duì)象的性質(zhì)(1)同一個(gè)類的對(duì)象之間可以相互賦值。當(dāng)對(duì)象的生存期結(jié)束時(shí),程序?yàn)檫@個(gè)對(duì)象調(diào)用析構(gòu)函數(shù),然后回收這個(gè)對(duì)象占用的內(nèi)存。程序員可以自己定義復(fù)制構(gòu)造函數(shù),對(duì)類A而言,復(fù)制構(gòu)造函數(shù)的原型如下:A::A(Aamp。 定義構(gòu)造函數(shù)構(gòu)造函數(shù)的名字應(yīng)與類名同名。在類體外就更不允許了。對(duì)于一個(gè)默認(rèn)調(diào)用,能從函數(shù)參數(shù)推斷出模板參數(shù)的能力是其中最關(guān)鍵的一環(huán)。使用內(nèi)聯(lián)函數(shù)能加快程序執(zhí)行速度,但如果函數(shù)體語(yǔ)句多,則會(huì)增加程序代碼的大小。 使用const保護(hù)數(shù)據(jù)用const修飾傳遞參數(shù),意思是通知函數(shù),它只能使用參數(shù)而無(wú)權(quán)修改它。是完全正確的,使用amp。 使用對(duì)象小結(jié)注意:類是抽象出一類物質(zhì)的共同特征,模板則是歸納出不同類型事物的共同操作。類的概念來(lái)自于人們認(rèn)識(shí)自然、認(rèn)識(shí)社會(huì)的過程。第二章 從結(jié)構(gòu)到類的演變 結(jié)構(gòu)的演化類是從結(jié)構(gòu)演變而來(lái),開始稱為“帶類的C”。把const限定符放在*號(hào)的右邊,是使指針本身稱為一個(gè)const指針。C++語(yǔ)言中的整數(shù)常量有4種類型:十進(jìn)制常量、長(zhǎng)整型常量、八進(jìn)制常量和十六進(jìn)制常量,并用前綴和后綴進(jìn)行分類標(biāo)識(shí)。顧名思義,預(yù)處理程序?qū)@幾種特殊語(yǔ)句的分析處理是在編譯程序的其他部分之前進(jìn)行的。如果仍然使用C庫(kù)中的頭文件,則需要使用擴(kuò)展名“.h”形式,例如和。從流中獲取數(shù)據(jù)的操作稱為提取操作。用關(guān)鍵字const修飾的標(biāo)識(shí)符是一類特殊的常量,稱為符號(hào)常量,或const變量。 認(rèn)識(shí)C++語(yǔ)言面向過程編程的特點(diǎn)C++語(yǔ)言的標(biāo)準(zhǔn)模板庫(kù)(Standard Templete Library,STL)提供了與要操作的元素類型無(wú)關(guān)的算法,不僅使許多復(fù)雜問題迎刃而解,而且也將許多面向?qū)ο蟮某绦蛟O(shè)計(jì)問題轉(zhuǎn)化成基于對(duì)象的面向過程編程。對(duì)引用實(shí)質(zhì)性的理解應(yīng)抓住如下兩點(diǎn):(1)引用實(shí)際上就是變量的別名,使用引用就如同直接使用變量一樣。告訴編譯時(shí),*p和p都是常量,都不能作為左值。從認(rèn)識(shí)論的角度看,可以歸為兩項(xiàng)主要的活動(dòng):認(rèn)識(shí)與描述。封裝就是把對(duì)象的屬性和操作結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。傳遞對(duì)象地址值是使用對(duì)象指針做為參數(shù);傳遞地址時(shí)使用對(duì)象引用作為參數(shù)。通過使用引用參數(shù),一個(gè)函數(shù)可以修改另外一個(gè)函數(shù)內(nèi)的變量。函數(shù)名(參數(shù)列表)。靜態(tài)聯(lián)編是在程序被編譯時(shí)進(jìn)行的。這一對(duì)花括號(hào)之間的內(nèi)容稱為類體;訪問權(quán)限用于控制對(duì)象的某個(gè)成員在程序中的可訪問性,如果沒有使用關(guān)鍵字,則所有成員默認(rèn)聲明為private權(quán)限。類名* 對(duì)象指針名=對(duì)象的地址;類對(duì)象的指針可以通過“”運(yùn)算符訪問對(duì)象的成員,即:對(duì)象指針名對(duì)象成員名 數(shù)據(jù)封裝面向?qū)ο蟮某绦蛟O(shè)計(jì)是通過為數(shù)據(jù)和代碼建立分塊的內(nèi)存區(qū)域,以便提供對(duì)程序進(jìn)行模塊化的一種程序設(shè)計(jì)方法,這些模塊可以被用做樣板,在需要時(shí)在建立其副本。由于類名被視為一個(gè)類型名,因此,使用new建立動(dòng)態(tài)對(duì)象的語(yǔ)法和建立動(dòng)態(tài)變量的語(yǔ)法類似,其不同點(diǎn)是new和構(gòu)造函數(shù)一起使用。 定義析構(gòu)函數(shù)因?yàn)檎{(diào)用析構(gòu)函數(shù)也是由編譯器來(lái)完成的,所以編譯器必須總能知道應(yīng)調(diào)用哪個(gè)函數(shù)。當(dāng)使用delete調(diào)用析構(gòu)函數(shù)時(shí),則按delete的順序析構(gòu)。(1)類本身的成員函數(shù)可以使用類的所有成員(私有和公有成員)。 面向?qū)ο蟮臉?biāo)記圖 類和對(duì)象的UML標(biāo)記圖 對(duì)象的結(jié)構(gòu)與連接只有定義和描述了對(duì)象之間的關(guān)系,各個(gè)對(duì)象才能構(gòu)成一個(gè)整體的、有機(jī)的系統(tǒng)模型,這就是對(duì)象的結(jié)構(gòu)和連結(jié)關(guān)系。消息連接是有方向的,使用一條帶箭頭的實(shí)線表示,從消息的發(fā)送者指向消息的接收者。將頭文件包含進(jìn)去。在程序的一個(gè)地方定義的宏名,如果不想使其影響到程序的其他地方,可以在不再使用時(shí)用undef刪除?!惷鹡 成員名n。靜態(tài)成員函數(shù)與一般函數(shù)有如下不同:(1)可以不指向某個(gè)具體的對(duì)象,只與類名連用。因?yàn)橛言f明也必須出現(xiàn)于類中,所以應(yīng)將友元看作類的接口的一部分。對(duì)友元函數(shù)聲明的惟一限制是該函數(shù)必須出現(xiàn)在類聲明內(nèi)的某一部分。定義格式如下:類型標(biāo)識(shí)符 類名::函數(shù)名(參數(shù)列表)const{//函數(shù)體}const位于函數(shù)參數(shù)表之后,函數(shù)體之前。類并不是對(duì)象,但有時(shí)可將其視為對(duì)象來(lái)使用。從一個(gè)或多個(gè)以前定義的類(基類)產(chǎn)生新類的過程稱為派生,這個(gè)新類稱為派生類。當(dāng)定義派生類的一個(gè)對(duì)象時(shí),首先調(diào)用基類的構(gòu)造函數(shù),對(duì)基類成員進(jìn)行初始化,然后執(zhí)行派生類的構(gòu)造函數(shù),如果某個(gè)基類仍是一個(gè)派生類,則這個(gè)過程遞歸執(zhí)行。公有繼承的意思是“isa”。作用域分辨操作的一般形式如下:類名::標(biāo)識(shí)符“類名”可以是任意基類或派生類名,“類標(biāo)識(shí)符”是該類中聲明的任一成員名。一般格式如下:template 模板參數(shù)返回類型 類名模板類型參數(shù)::成員函數(shù)名(函數(shù)參數(shù)列表){//函數(shù)體}模板類型參數(shù) 是指template的“ ”內(nèi)使用class(或typename)聲明的類型參數(shù),構(gòu)造函數(shù)和析構(gòu)函數(shù)沒有返回類型。不能使用列表初始化向量,但可以先初始化一個(gè)數(shù)組,然后把數(shù)組的內(nèi)容復(fù)制給向量。它的初始值為程序員最初申請(qǐng)的元素個(gè)數(shù)。(2)erase(iterator it):刪除it所指向的容器對(duì)象。如果派生類沒有改寫繼承基類的虛函數(shù),則函數(shù)指針調(diào)用基類的虛函數(shù)。目前推薦的C++標(biāo)準(zhǔn)不支持虛構(gòu)造函數(shù)。如果通過同一個(gè)基類派生一系列的類,則將這些類總稱為類族。C++的運(yùn)算符大部分都可以重載,不能重載的只有. 、:: 、* 和 ?: 。}input是類istream對(duì)象的引用。一般總是要求運(yùn)算符重載合乎習(xí)慣。在C++中,如果在多條繼承路徑上有一個(gè)匯合處,則稱這個(gè)匯合處的基類為公共基類(ios符合條件)。因?yàn)樽址疀]有結(jié)束位,所以將字符串作為整體輸出時(shí),有效字符串后面將出現(xiàn)亂碼。當(dāng)用鍵盤同時(shí)給一個(gè)單字符對(duì)象和一個(gè)字符串對(duì)象賦值時(shí),不要先給字符串賦值。如果想使這個(gè)公共的基類只產(chǎn)生一個(gè)實(shí)例,則可以將這個(gè)基類說明為虛基類。另一方面,如果一個(gè)運(yùn)算符的操作需要修改類對(duì)象的狀態(tài),則應(yīng)當(dāng)使用類運(yùn)算符,這樣更符合數(shù)據(jù)封裝的要求。input=cin。另外,“sizeof”和“”不是運(yùn)算符,因而不能重載,而=、()、[ ] 、這4個(gè)運(yùn)算符只能用類運(yùn)算符來(lái)重載。抽象類至少含有一個(gè)虛函數(shù),而且至少有一個(gè)虛函數(shù)是純虛函數(shù),以便將它與空的虛函數(shù)區(qū)分開來(lái)。虛析構(gòu)函數(shù)使用virtual說明。虛函數(shù)的調(diào)用規(guī)則是:根據(jù)當(dāng)前對(duì)象,優(yōu)先調(diào)用對(duì)象本身的成員函數(shù)。 出圈游戲第八章 多態(tài)性和虛函數(shù) 多態(tài)性靜態(tài)聯(lián)編所支持的多態(tài)性稱為編譯時(shí)的多態(tài)性。通俗地講,也就是已申請(qǐng)的空間。也就是說,泛型算法提供了許多可用于向量的操作行為,而這些算法和想要操作
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1