C++是在C語言基礎(chǔ)上開發(fā)的一種集面向?qū)ο缶幊獭⑼ㄓ镁幊毯蛡鹘y(tǒng)的過程化編程于一體的編程語言,是C語言的超集。《C++ Primer Plus(第6版)(中文版)》是根據(jù)2003年的ISO/ANSI C++標(biāo)準(zhǔn)編寫的。通過大量短小精悍的程序詳細(xì)而全面地闡述了C++的基本概念和技術(shù)。全書分為18章和10個(gè)附錄,分別介紹了C++程序的運(yùn)行方式、基本數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型、循環(huán)和關(guān)系表達(dá)式、分支語句和邏輯操作符、函數(shù)重載和函數(shù)模板、內(nèi)存模型和名稱空間、類的設(shè)計(jì)和使用、多態(tài)、虛函數(shù)、動(dòng)態(tài)內(nèi)存分配、繼承、代碼重用、友元、異常處理技術(shù)、string類和標(biāo)準(zhǔn)模板庫(kù)、輸入/輸出等內(nèi)容。本書針對(duì)C++初學(xué)者,從C語言基礎(chǔ)知識(shí)開始介紹,然后在此基礎(chǔ)上詳細(xì)闡述C++新增的特性,因此不要求讀者有較多C語言方面的背景知識(shí)。本書可以作為高等院校C++課程的教材,也可以供初學(xué)者自學(xué)C++時(shí)使用。
一本經(jīng)久不衰的C++暢銷經(jīng)典教程;第一本支持C++11新標(biāo)準(zhǔn)的程序設(shè)計(jì)圖書。它被譽(yù)為“開發(fā)人員學(xué)習(xí)C++的首選教程,沒有之一”!
學(xué)習(xí)C++是一次探索之旅,因?yàn)檫@種語言容納了好幾種編程范式,其中包括面向?qū)ο缶幊獭⒎盒途幊毯蛡鹘y(tǒng)的過程化編程。本書第 5 版是基于 ISO C++標(biāo)準(zhǔn)編寫的,該標(biāo)準(zhǔn)的官方名稱為 C++99 和 C++03(C++99/C++03),其中2003標(biāo)準(zhǔn)主要是對(duì)1999標(biāo)準(zhǔn)的技術(shù)修正,并沒有添加任何新功能。C++在不斷發(fā)展,編寫本書時(shí),新標(biāo)準(zhǔn)獲得了C++國(guó)際標(biāo)準(zhǔn)委員會(huì)的批準(zhǔn)。在制定期間,該標(biāo)準(zhǔn)名為C++0x,但現(xiàn)已改名為C++11。大多數(shù)編譯器都能很好地支持C++99/03,而本書的大多數(shù)示例都遵守該標(biāo)準(zhǔn)。有些實(shí)現(xiàn)中已顯現(xiàn)了新標(biāo)準(zhǔn)的很多功能,而本書也對(duì)這些新功能進(jìn)行了探索。
本書在介紹C++特性的同時(shí),討論了基本C語言,使兩者成為有機(jī)的整體。書中介紹了C++的基本概念,并通過短小精悍的程序來闡明,這些程序都很容易復(fù)制和試驗(yàn)。書中還介紹了輸入和輸出,如何讓程序執(zhí)行重復(fù)性任務(wù),如何讓程序做出選擇,處理數(shù)據(jù)的多種方式,以及如何使用函數(shù)等內(nèi)容。另外,本書還講述了C++在C語言的基礎(chǔ)上新增的很多特性,包括:
類和對(duì)象;
繼承;
多態(tài)、虛函數(shù)和RTTI(運(yùn)行階段類型識(shí)別);
函數(shù)重載;
引用變量;
泛型(獨(dú)立于類型的)編程,這種技術(shù)是由模板和標(biāo)準(zhǔn)模板庫(kù)(STL)提供的;
處理錯(cuò)誤條件的異常機(jī)制;
管理函數(shù)、類和變量名的名稱空間。
初級(jí)教程方法
大約20年前,《C Primer Plus》開創(chuàng)了優(yōu)良的初級(jí)教程傳統(tǒng),本書建立在這樣的基礎(chǔ)之上,吸收了其中很多成功的理念。
初級(jí)教程應(yīng)當(dāng)是友好的、便于使用的指南。
初級(jí)教程不要求您已經(jīng)熟悉相關(guān)的編程概念。
初級(jí)教程強(qiáng)調(diào)的是動(dòng)手學(xué)習(xí),通過簡(jiǎn)短、容易輸入的示例闡述一兩個(gè)概念。
初級(jí)教程用示意圖來解釋概念。
初級(jí)教程提供問題和練習(xí)來檢驗(yàn)?zāi)鷮?duì)知識(shí)的理解,從而適于自學(xué)或課堂教學(xué)。
基于上述理念,本書幫助您理解這種用途廣泛的語言,并學(xué)習(xí)如何使用它。
對(duì)何時(shí)使用某些特性,例如何時(shí)使用公共繼承來建立is-a關(guān)系,提供了概念方面的指導(dǎo)。
闡釋了常用的C++編程理念和技術(shù)。
提供了大量的附注,如提示、警告、注意等。
本書的作者和編輯盡最大的努力使本書簡(jiǎn)單、明了、生動(dòng)有趣。我們的目標(biāo)是,您閱讀本書后,能夠編寫出可靠、高效的程序,并且覺得這是一種享受。
示例代碼
本書包含大量的示例代碼,其中大部分是完整的程序。和前一版一樣,本書介紹的是通用C++,因此適用于任何計(jì)算機(jī)、操作系統(tǒng)和編譯器。書中的示例在Windows 7系統(tǒng)、Macintosh OS X系統(tǒng)和Linux系統(tǒng)上進(jìn)行了測(cè)試。
使用了C++11功能的程序要求編譯器支持這些功能,但其他程序可在遵循C++ 99/03的任何系統(tǒng)上運(yùn)行。
書中完整程序的源代碼可從配套網(wǎng)站下載,詳情請(qǐng)參閱封底的鏈接信息。
本書內(nèi)容
本書分為18章和10個(gè)附錄。
第1章 預(yù)備知識(shí):本章介紹Bjarne Stroustrup如何通過在C語言的基礎(chǔ)上添加對(duì)面向?qū)ο缶幊痰闹С郑瑏韯?chuàng)造C++編程語言。討論面向過程語言(如C語言)與面向?qū)ο笳Z言(如C++)之間的區(qū)別。您將了解ANSI/ISO在制定C++標(biāo)準(zhǔn)方面所做的工作。本章還討論了創(chuàng)建C++程序的技巧,介紹了當(dāng)前幾種C++編譯器使用的方法。最后,本章介紹了本書的一些約定。
第2章 開始學(xué)習(xí)C++:本章介紹創(chuàng)建簡(jiǎn)單C++程序的步驟。您可以學(xué)習(xí)到main( )函數(shù)扮演的角色以及C++程序使用的一些語句。您將使用預(yù)定義的cout和cin對(duì)象來實(shí)現(xiàn)程序輸出和輸入,學(xué)習(xí)如何創(chuàng)建和使用變量。最后,本章還將介紹函數(shù)—C++的編程模塊。
第3章 處理數(shù)據(jù):C++提供了內(nèi)置類型來存儲(chǔ)兩種數(shù)據(jù):整數(shù)(沒有小數(shù)的數(shù)字)和浮點(diǎn)數(shù)(帶小數(shù)的數(shù)字)。為滿足程序員的各種需求,C++為每一種數(shù)據(jù)都提供了幾個(gè)類型。本章將要討論這些類型,包括創(chuàng)建變量和編寫各種類型的常量。另外,還將討論C++是如何處理不同類型之間的隱式和顯式轉(zhuǎn)換的。
第4章 復(fù)合類型:C++讓程序員能夠使用基本的內(nèi)置類型來創(chuàng)建更復(fù)雜的類型。最高級(jí)的形式是類,這將在第9章~第13章討論。本章討論其他形式,包括數(shù)組(存儲(chǔ)多個(gè)同類型的值)、結(jié)構(gòu)(存儲(chǔ)多個(gè)不同類型的值)、指針(標(biāo)識(shí)內(nèi)存位置)。您還將學(xué)習(xí)如何創(chuàng)建和存儲(chǔ)文本字符串及如何使用C-風(fēng)格字符數(shù)組和C++ string類來處理文本輸入和輸出。最后,還將學(xué)習(xí)C++處理內(nèi)存分配的一些方法,其中包括用于顯式地管理內(nèi)存的new和delete運(yùn)算符。
第5章 循環(huán)和關(guān)系表達(dá)式:程序經(jīng)常需要執(zhí)行重復(fù)性操作,為此C++提供了3種循環(huán)結(jié)構(gòu):for循環(huán)、while循環(huán)和do while循環(huán)。這些循環(huán)必須知道何時(shí)終止,C++的關(guān)系運(yùn)算符使程序員能夠創(chuàng)建測(cè)試來引導(dǎo)循環(huán)。本章還將介紹如何創(chuàng)建逐字符地讀取和處理輸入的循環(huán)。最后,您將學(xué)習(xí)如何創(chuàng)建二維數(shù)組以及如何使用嵌套循環(huán)來處理它們。
第6章 分支語句和邏輯運(yùn)算符:如果程序可以根據(jù)實(shí)際情況調(diào)整執(zhí)行,我們就說程序能夠智能地行動(dòng)。在本章,您將了解到如何使用if、if else和switch語句及條件運(yùn)算符來控制程序流程,學(xué)習(xí)如何使用邏輯運(yùn)算符來表達(dá)決策測(cè)試。另外,本章還將介紹確定字符關(guān)系(如測(cè)試字符是數(shù)字還是非打印字符)的函數(shù)庫(kù)cctype。最后,還將簡(jiǎn)要地介紹文件輸入/輸出。
第7章 函數(shù)—C++的編程模塊:函數(shù)是C++的基本編程部件。本章重點(diǎn)介紹C++函數(shù)與C函數(shù)共同的特性。具體地說,您將復(fù)習(xí)函數(shù)定義的通用格式,了解函數(shù)原型是如何提高程序可靠性的。同時(shí),還將學(xué)習(xí)如何編寫函數(shù)來處理數(shù)組、字符串和結(jié)構(gòu)。還要學(xué)習(xí)有關(guān)遞歸的知識(shí)(即函數(shù)在什么情況下調(diào)用自身)以及如何用它來實(shí)現(xiàn)分而治之的策略。最后將介紹函數(shù)指針,它使程序員能夠通過函數(shù)參數(shù)來命令函數(shù)使用另一個(gè)函數(shù)。
第8章 函數(shù)探幽:本章將探索C++中函數(shù)新增的特性。您將學(xué)習(xí)內(nèi)聯(lián)函數(shù),它可以提高程序的執(zhí)行速度,但會(huì)增加程序的長(zhǎng)度;還將使用引用變量,它們提供了另一種將信息傳遞給函數(shù)的方式。默認(rèn)參數(shù)使函數(shù)能夠自動(dòng)為函數(shù)調(diào)用中省略的函數(shù)參數(shù)提供值。函數(shù)重載使程序員能夠創(chuàng)建多個(gè)參數(shù)列表不同的同名函數(shù)。類設(shè)計(jì)中經(jīng)常使用這些特性。另外,您還將學(xué)習(xí)函數(shù)模板,它們使程序員能夠指定相關(guān)函數(shù)族的設(shè)計(jì)。
第9章 內(nèi)存模型和名稱空間:本章討論如何創(chuàng)建多文件程序,介紹分配內(nèi)存的各種方式、管理內(nèi)存的各種方式以及作用域、鏈接、名稱空間,這些內(nèi)容決定了變量在程序的哪些部分是可見的。
第10章 對(duì)象和類:類是用戶定義的類型,對(duì)象(如變量)是類的實(shí)例。本章介紹面向?qū)ο缶幊毯皖愒O(shè)計(jì)。對(duì)象聲明描述的是存儲(chǔ)在對(duì)象中的信息以及可對(duì)對(duì)象執(zhí)行的操作(類方法)。對(duì)象的某些組成部分對(duì)于外界來說是可見的(公有部分),而某些部分卻是隱藏的(私有部分)。特殊的類方法(構(gòu)造函數(shù)和析構(gòu)函數(shù))在對(duì)象創(chuàng)建和釋放時(shí)發(fā)揮作用。在本章中,您將學(xué)習(xí)所有這些內(nèi)容以及其他類知識(shí),了解如何使用類來實(shí)現(xiàn)ADT,如棧。
第11章 使用類:在本章中,您將深入了解類。首先了解運(yùn)算符重載,它使程序員能夠定義與類對(duì)象一起使用的運(yùn)算符,如+。還將學(xué)習(xí)友元函數(shù),這些函數(shù)可以訪問外部世界不可訪問的類數(shù)據(jù)。同時(shí)還將了解一些構(gòu)造函數(shù)和重載運(yùn)算符成員函數(shù)是如何被用來管理類類型轉(zhuǎn)換的。
第12章 類和動(dòng)態(tài)內(nèi)存分配:一般來說,讓類成員指向動(dòng)態(tài)分配的內(nèi)存很有用。如果程序員在類構(gòu)造函數(shù)中使用new來分配動(dòng)態(tài)內(nèi)存,就有責(zé)任提供適當(dāng)?shù)奈鰳?gòu)函數(shù),定義顯式拷貝構(gòu)造函數(shù)和顯式賦值運(yùn)算符。本章介紹了在程序員沒有提供顯式定義時(shí),將如何隱式地生成成員函數(shù)以及這些成員函數(shù)的行為。您還將通過使用對(duì)象指針,了解隊(duì)列模擬問題,擴(kuò)充類方面的知識(shí)。
第13章 類繼承:在面向?qū)ο缶幊讨校^承是功能最強(qiáng)大的特性之一,通過繼承,派生類可以繼承基類的特性,可重用基類代碼。本章討論公有繼承,這種繼承模擬了is-a關(guān)系,即派生對(duì)象是基對(duì)象的特例。例如,物理學(xué)家是科學(xué)家的特例。有些繼承關(guān)系是多態(tài)的,這意味著相同的方法名稱可能導(dǎo)致依賴于對(duì)象類型的行為。要實(shí)現(xiàn)這種行為,需要使用一種新的成員函數(shù)—虛函數(shù)。有時(shí),使用抽象基類是實(shí)現(xiàn)繼承關(guān)系的最佳方式。本章討論了這些問題,說明了公有繼承在什么情況下合適,在什么情況下不合適。
第14章 C++中的代碼重用:公有繼承只是代碼重用的方式之一。本章將介紹其他幾種方式。如果一個(gè)類包含了另一個(gè)類的對(duì)象,則稱為包含。包含可以用來模擬has-a關(guān)系,其中一個(gè)類包含另一個(gè)類的對(duì)象。例如,汽車有馬達(dá)。也可以使用私有繼承和保護(hù)繼承來模擬這種關(guān)系。本章說明了各種方法之間的區(qū)別。同時(shí),您還將學(xué)習(xí)類模板,它讓程序員能夠使用泛型定義類,然后使用模板根據(jù)具體類型創(chuàng)建特定的類。例如,棧模板使程序員能夠創(chuàng)建整數(shù)棧或字符串棧。最后,本章還將介紹多重公有繼承,使用這種方式,一個(gè)類可以從多個(gè)類派生而來。
第15章 友元、異常和其他:本章擴(kuò)展了對(duì)友元的討論,討論了友元類和友元成員函數(shù)。然后從異常開始介紹了C++的幾項(xiàng)新特性。異常為處理程序異常提供了一種機(jī)制,如函數(shù)參數(shù)值不正確或內(nèi)存耗盡等。您還將學(xué)習(xí)RTTI,這種機(jī)制用來確定對(duì)象類型。最后,本章還將介紹一種更安全的方法來替代不受限制的強(qiáng)制類型轉(zhuǎn)換。
第16章 string類和標(biāo)準(zhǔn)模板庫(kù):本章討論C++語言中新增的一些類庫(kù)。對(duì)于傳統(tǒng)的C-風(fēng)格字符串來說,string類是一種方便且功能強(qiáng)大的替代方式。auto_ptr類幫助管理動(dòng)態(tài)分配的內(nèi)存。STL提供了幾種類容器(包括數(shù)組、隊(duì)列、鏈表、集合和映射)的模板表示。它還提供了高效的泛型算法庫(kù),這些算法可用于STL容器,也可用于常規(guī)數(shù)組。模板類valarray為數(shù)值數(shù)組提供了支持。
第17章 輸入、輸出和文件:本章復(fù)習(xí)C++ I/O,并討論如何格式化輸出。您將要學(xué)習(xí)如何使用類方法來確定輸入或輸出流的狀態(tài),了解輸入類型是否匹配或是否檢測(cè)到了文件尾。C++使用繼承來派生用于管理文件輸入和輸出的類。您將學(xué)習(xí)如何打開文件,以進(jìn)行輸入和輸出,如何在文件中追加數(shù)據(jù),如何使用二進(jìn)制文件,如何獲得對(duì)文件的隨機(jī)訪問權(quán)。最后,還將學(xué)習(xí)如何使用標(biāo)準(zhǔn)的I/O方法來讀取和寫入字符串。
第18章 探討C++新標(biāo)準(zhǔn):本章首先復(fù)習(xí)之前介紹過的幾項(xiàng)C++11新功能,包括新類型、統(tǒng)一的初始化語法、自動(dòng)類型推斷、新的智能指針以及作用域內(nèi)枚舉。然后,討論新增的右值引用類型以及如何使用它來實(shí)現(xiàn)移動(dòng)語義。接下來,介紹了新增的類功能、lambda表達(dá)式和可變參數(shù)模板。最后,概述了眾多其他的新功能。
附錄A 計(jì)數(shù)系統(tǒng):本附錄討論八進(jìn)制數(shù)、十六進(jìn)制數(shù)和二進(jìn)制數(shù)。
附錄B C++保留字:本附錄列出了C++關(guān)鍵字。
附錄C ASCII字符集:本附錄列出了ASCII字符集及其十進(jìn)制、八進(jìn)制、十六進(jìn)制和二進(jìn)制表示。
附錄D 運(yùn)算符優(yōu)先級(jí):本附錄按優(yōu)先級(jí)從高到低的順序列出了C++的運(yùn)算符。
附錄E 其他運(yùn)算符:本附錄總結(jié)了正文中沒有介紹的其他C++運(yùn)算符,如按位運(yùn)算符等。
附錄F 模板類string:本附錄總結(jié)了string類方法和函數(shù)。
附錄G 標(biāo)準(zhǔn)模板庫(kù)方法和函數(shù):本附錄總結(jié)了STL容器方法和通用的STL算法函數(shù)。
附錄H 精選讀物和網(wǎng)上資源:本附錄列出一些參考書,幫助您深入了解C++。
附錄I 轉(zhuǎn)換為ISO標(biāo)準(zhǔn)C++:本附錄提供了從C和老式C++實(shí)現(xiàn)到標(biāo)準(zhǔn)C++的轉(zhuǎn)換指南。
附錄J 復(fù)習(xí)題答案:本附錄提供各章結(jié)尾的復(fù)習(xí)題的答案。
對(duì)教師的提示
本書宗旨之一是,提供一本既可用于自學(xué)又可用于教學(xué)的書籍。下面是本書在支持教學(xué)方面的一些特征。
本書介紹的是通用C++,不依賴于特定實(shí)現(xiàn)。
本書內(nèi)容跟蹤了ISO/ANSI C++標(biāo)準(zhǔn)委員會(huì)的工作,并討論了模板、STL、string類、異常、RTTI和名稱空間。
本書不要求學(xué)生了解C語言,但如果有一定的編程經(jīng)驗(yàn)則更好。
本書內(nèi)容經(jīng)過了精心安排,前幾章可以作為對(duì)C預(yù)備知識(shí)的復(fù)習(xí)一帶而過。
各章都有復(fù)習(xí)題和編程練習(xí)。附錄J提供了復(fù)習(xí)題的答案。
本書介紹的一些主題很適于計(jì)算機(jī)科學(xué)課程,包括抽象數(shù)據(jù)類型(ADT)、棧、隊(duì)列、簡(jiǎn)單鏈表、模擬、泛型編程以及使用遞歸來實(shí)現(xiàn)分而治之的策略。
各章都非常簡(jiǎn)短,用一周甚至更短的時(shí)間就可以學(xué)完。
本書討論了何時(shí)使用具體的特性以及如何使用它們。例如,把is-a關(guān)系的公有繼承同組合、has-a關(guān)系的私有繼承聯(lián)系起來,討論了何時(shí)應(yīng)使用虛函數(shù)以及何時(shí)不應(yīng)使用。
本書約定
為區(qū)別不同類型的文本,我們使用了一些印刷上的約定。
代碼行、命令、語句、變量、文件名和程序輸出使用courier new字體:
用戶需要輸入的程序輸入用粗體表示:
語法描述中的占位符用斜體表示。您應(yīng)使用實(shí)際的文件名、參數(shù)等替換占位符。
新術(shù)語用斜體表示。
旁注:提供更深入的討論和額外的背景知識(shí),幫助闡明主題。
提示:提供特定編程情形下很有幫助的簡(jiǎn)單指南。
警告:指出潛在的陷阱。
注意:提供不屬于其他類別的各種說明。
開發(fā)本書編程示例時(shí)使用的系統(tǒng)
本書的C++11示例是使用Microsoft Visual C++ 2010和帶Gnu g++ 4.5.0的Cygwin開發(fā)的,它們都運(yùn)行在64位的Windows 7系統(tǒng)上。其他示例在這些系統(tǒng)上進(jìn)行了測(cè)試,還在OS X 10.6.8系統(tǒng)和Ubuntu Linux系統(tǒng)上分別使用g++ 4.21和g++ 4.4.1進(jìn)行了測(cè)試。大多數(shù)非C++11示例最初都是在Windows XP Professional系統(tǒng)上使用Microsoft Visual C++ 2003和Metrowerks CodeWarrior Development Studio 9開發(fā)的,并在該系統(tǒng)上使用Borland C++ 5.5命令行編譯器和GNU gpp 3.3.3進(jìn)行了測(cè)試;其次,在運(yùn)行SuSE 9.0 Linux的系統(tǒng)上使用Comeau 4.3.3和GNU g++3.3.1進(jìn)行了測(cè)試;最后,在運(yùn)行OS 10.3的Macintosh G4上使用Metrowerks Development Studio 9進(jìn)行了測(cè)試。
C++為程序員提供了豐富多彩的內(nèi)容。祝您學(xué)習(xí)愉快!
Stephen Prata,在美國(guó)加州肯特菲爾得的馬林學(xué)院教授天文、物理和計(jì)算機(jī)科學(xué)。他畢業(yè)于加州理工學(xué)院,在美國(guó)加州大學(xué)伯克利分校獲得博士學(xué)位。他單獨(dú)或與他人合作編寫的編程圖書有十多本,其中《New C Primer Plus》獲得了計(jì)算機(jī)出版聯(lián)合會(huì)1990年度最佳“How-to”計(jì)算機(jī)圖書獎(jiǎng),《C++ Primer Plus》獲得了計(jì)算機(jī)出版聯(lián)合會(huì)1991年度最佳“How-to”計(jì)算機(jī)圖書獎(jiǎng)提名。
第1章 預(yù)備知識(shí)
1.1 C++簡(jiǎn)介
1.2 C++簡(jiǎn)史
1.2.1 C語言
1.2.2 C語言編程原理
1.2.3 面向?qū)ο缶幊?br />1.2.4 C++和泛型編程
1.2.5 C++的起源
1.3 可移植性和標(biāo)準(zhǔn)
1.3.1 C++的發(fā)展
1.3.2 本書遵循的C++標(biāo)準(zhǔn)
1.4 程序創(chuàng)建的技巧
1.4.1 創(chuàng)建源代碼文件
1.4.2 編譯和鏈接
1.5 總結(jié)
第2章 開始學(xué)習(xí)C++
2.1 進(jìn)入C++
2.1.1 main( )函數(shù)
2.1.2 C++注釋
2.1.3 C++預(yù)處理器和iostream文件
2.1.4 頭文件名
2.1.5 名稱空間
2.1.6 使用cout進(jìn)行C++輸出
2.1.7 C++源代碼的格式化
2.2 C++語句
2.2.1 聲明語句和變量
2.2.2 賦值語句
2.2.3 cout的新花樣
2.3 其他C++語句
2.3.1 使用cin
2.3.2 使用cout進(jìn)行拼接
2.3.3 類簡(jiǎn)介
2.4 函數(shù)
2.4.1 使用有返回值的函數(shù)
2.4.2 函數(shù)變體
2.4.3 用戶定義的函數(shù)
2.4.4 用戶定義的有返回值的函數(shù)
2.4.5 在多函數(shù)程序中使用using編譯指令
2.5 總結(jié)
2.6 復(fù)習(xí)題
2.7 編程練習(xí)
第3章 處理數(shù)據(jù)
3.1 簡(jiǎn)單變量
3.1.1 變量名
3.1.2 整型
3.1.3 整型short、int、long和long long
3.1.4 無符號(hào)類型
3.1.5 選擇整型類型
3.1.6 整型字面值
3.1.7 C++如何確定常量的類型
3.1.8 char類型:字符和小整數(shù)
3.1.9 bool類型
3.2 const限定符
3.3 浮點(diǎn)數(shù)
3.3.1 書寫浮點(diǎn)數(shù)
3.3.2 浮點(diǎn)類型
3.3.3 浮點(diǎn)常量
3.3.4 浮點(diǎn)數(shù)的優(yōu)缺點(diǎn)
3.4 C++算術(shù)運(yùn)算符
3.4.1 運(yùn)算符優(yōu)先級(jí)和結(jié)合性
3.4.2 除法分支
3.4.3 求模運(yùn)算符
3.4.4 類型轉(zhuǎn)換
3.4.5 C++11中的auto聲明
3.5 總結(jié)
3.6 復(fù)習(xí)題
3.7 編程練習(xí)
第4章 復(fù)合類型
4.1 數(shù)組
4.1.1 程序說明
4.1.2 數(shù)組的初始化規(guī)則
4.1.3 C++11數(shù)組初始化方法
4.2 字符串
4.2.1 拼接字符串常量
4.2.2 在數(shù)組中使用字符串
4.2.3 字符串輸入
4.2.4 每次讀取一行字符串輸入
4.2.5 混合輸入字符串和數(shù)字
4.3 string類簡(jiǎn)介
4.3.1 C++11字符串初始化
4.3.2 賦值、拼接和附加
4.3.3 string類的其他操作
4.3.4 string類I/O
4.3.5 其他形式的字符串字面值
4.4 結(jié)構(gòu)簡(jiǎn)介
4.4.1 在程序中使用結(jié)構(gòu)
4.4.2 C++11結(jié)構(gòu)初始化
4.4.3 結(jié)構(gòu)可以將string類作為成員嗎
4.4.4 其他結(jié)構(gòu)屬性
4.4.5 結(jié)構(gòu)數(shù)組
4.4.6 結(jié)構(gòu)中的位字段
4.5 共用體
4.6 枚舉
4.6.1 設(shè)置枚舉量的值
4.6.2 枚舉的取值范圍
4.7 指針和自由存儲(chǔ)空間
4.7.1 聲明和初始化指針
4.7.2 指針的危險(xiǎn)
4.7.3 指針和數(shù)字
4.7.4 使用new來分配內(nèi)存
4.7.5 使用delete釋放內(nèi)存
4.7.6 使用new來創(chuàng)建動(dòng)態(tài)數(shù)組
4.8 指針、數(shù)組和指針?biāo)阈g(shù)
4.8.1 程序說明
4.8.2 指針小結(jié)
4.8.3 指針和字符串
4.8.4 使用new創(chuàng)建動(dòng)態(tài)結(jié)構(gòu)
4.8.5 自動(dòng)存儲(chǔ)、靜態(tài)存儲(chǔ)和動(dòng)態(tài)存儲(chǔ)
4.9 類型組合
4.10 數(shù)組的替代品
4.10.1 模板類vector
4.10.2 模板類array(C++11)
4.10.3 比較數(shù)組、vector對(duì)象和array對(duì)象
4.11 總結(jié)
4.12 復(fù)習(xí)題
4.13 編程練習(xí)
第5章 循環(huán)和關(guān)系表達(dá)式
5.1 for循環(huán)
5.1.1 for循環(huán)的組成部分
5.1.2 回到for循環(huán)
5.1.3 修改步長(zhǎng)
5.1.4 使用for循環(huán)訪問字符串
5.1.5 遞增運(yùn)算符(++)和遞減運(yùn)算符(--)
5.1.6 副作用和順序點(diǎn)
5.1.7 前綴格式和后綴格式
5.1.8 遞增/遞減運(yùn)算符和指針
5.1.9 組合賦值運(yùn)算符
5.1.10 復(fù)合語句(語句塊)
5.1.11 其他語法技巧--逗號(hào)運(yùn)算符
5.1.12 關(guān)系表達(dá)式
5.1.13 賦值、比較和可能犯的錯(cuò)誤
5.1.14 C-風(fēng)格字符串的比較
5.1.15 比較string類字符串
5.2 while循環(huán)
5.2.1 for與while
5.3.2 等待一段時(shí)間:編寫延時(shí)循環(huán)
5.3 do while循環(huán)
5.4 基于范圍的for循環(huán)(C++11)
5.5 循環(huán)和文本輸入
5.5.1 使用原始的cin進(jìn)行輸入
5.5.2 使用cin.get(char)進(jìn)行補(bǔ)救
5.5.3 使用哪一個(gè)cin.get( )
5.5.4 文件尾條件
5.5.5 另一個(gè)cin.get( )版本
5.6 嵌套循環(huán)和二維數(shù)組
5.6.1 初始化二維數(shù)組
5.6.2 使用二維數(shù)組
5.7 總結(jié)
5.8 復(fù)習(xí)題
5.9 編程練習(xí)
第6章 分支語句和邏輯運(yùn)算符
6.1 if語句
6.1.1 if else語句
6.1.2 格式化if else語句
6.1.3 if else if else結(jié)構(gòu)
6.2 邏輯表達(dá)式
6.2.1 邏輯OR運(yùn)算符:||
6.2.2 邏輯AND運(yùn)算符:&&
6.2.3 用&&來設(shè)置取值范圍
6.2.4 邏輯NOT運(yùn)算符:!
6.2.5 邏輯運(yùn)算符細(xì)節(jié)
6.2.6 其他表示方式
6.3 字符函數(shù)庫(kù)cctype
6.4 ?:運(yùn)算符
6.5 switch語句
6.5.1 將枚舉量用作標(biāo)簽
6.5.2 switch和if else
6.6 break和continue語句
6.7 讀取數(shù)字的循環(huán)
6.8 簡(jiǎn)單文件輸入/輸出
6.8.1 文本I/O和文本文件
6.8.2 寫入到文本文件中
6.8.3 讀取文本文件
6.9 總結(jié)
6.10 復(fù)習(xí)題
6.11 編程練習(xí)
第7章 函數(shù)--C++的編程模塊
7.1 復(fù)習(xí)函數(shù)的基本知識(shí)
7.1.1 定義函數(shù)
7.1.2 函數(shù)原型和函數(shù)調(diào)用
7.2 函數(shù)參數(shù)和按值傳遞
7.2.1 多個(gè)參數(shù)
7.2.2 另外一個(gè)接受兩個(gè)參數(shù)的函數(shù)
7.3 函數(shù)和數(shù)組
7.3.1 函數(shù)如何使用指針來處理數(shù)組
7.3.2 將數(shù)組作為參數(shù)意味著什么
7.3.3 更多數(shù)組函數(shù)示例
7.3.4 使用數(shù)組區(qū)間的函數(shù)
7.3.5 指針和const
7.4 函數(shù)和二維數(shù)組
7.5 函數(shù)和C-風(fēng)格字符串
7.5.1 將C-風(fēng)格字符串作為參數(shù)的函數(shù)
7.5.2 返回c-風(fēng)格字符串的函數(shù)
7.6 函數(shù)和結(jié)構(gòu)
7.6.1 傳遞和返回結(jié)構(gòu)
7.6.2 另一個(gè)處理結(jié)構(gòu)的函數(shù)示例
7.6.3 傳遞結(jié)構(gòu)的地址
7.7 函數(shù)和string對(duì)象
7.8 函數(shù)與array對(duì)象
7.9 遞歸
7.9.1 包含一個(gè)遞歸調(diào)用的遞歸
7.9.2 包含多個(gè)遞歸調(diào)用的遞歸
7.10 函數(shù)指針
7.10.1 函數(shù)指針的基礎(chǔ)知識(shí)
7.10.2 函數(shù)指針示例
7.10.3 深入探討函數(shù)指針
7.10.4 使用typedef進(jìn)行簡(jiǎn)化
7.11 總結(jié)
7.12 復(fù)習(xí)題
7.13 編程練習(xí)
第8章 函數(shù)探幽
8.1 C++內(nèi)聯(lián)函數(shù)
8.2 引用變量
8.2.1 創(chuàng)建引用變量
8.2.2 將引用用作函數(shù)參數(shù)
8.2.3 引用的屬性和特別之處
8.2.4 將引用用于結(jié)構(gòu)
8.2.5 將引用用于類對(duì)象
8.2.6 對(duì)象、繼承和引用
8.2.7 何時(shí)使用引用參數(shù)
8.3 默認(rèn)參數(shù)
8.4 函數(shù)重載
8.4.1 重載示例
8.4.2 何時(shí)使用函數(shù)重載
8.5 函數(shù)模板
8.5.1 重載的模板
8.5.2 模板的局限性
8.5.3 顯式具體化
8.5.4 實(shí)例化和具體化
8.5.5 編譯器選擇使用哪個(gè)函數(shù)版本
8.5.6 模板函數(shù)的發(fā)展
8.6 總結(jié)
8.7 復(fù)習(xí)題
8.8 編程練習(xí)
第9章 內(nèi)存模型和名稱空間
9.1 單獨(dú)編譯
9.2 存儲(chǔ)持續(xù)性、作用域和鏈接性
9.2.1 作用域和鏈接
9.2.2 自動(dòng)存儲(chǔ)持續(xù)性
9.2.3 靜態(tài)持續(xù)變量
9.2.4 靜態(tài)持續(xù)性、外部鏈接性
9.2.5 靜態(tài)持續(xù)性、內(nèi)部鏈接性
9.2.6 靜態(tài)存儲(chǔ)持續(xù)性、無鏈接性
9.2.7 說明符和限定符
9.2.8 函數(shù)和鏈接性
9.2.9 語言鏈接性
9.2.10 存儲(chǔ)方案和動(dòng)態(tài)分配
9.3 名稱空間
9.3.1 傳統(tǒng)的C++名稱空間
9.3.2 新的名稱空間特性
9.3.3 名稱空間示例
9.3.4 名稱空間及其前途
9.4 總結(jié)
9.5 復(fù)習(xí)題
9.6 編程練習(xí)
第10章 對(duì)象和類
10.1 過程性編程和面向?qū)ο缶幊?br />10.2 抽象和類
10.2.1 類型是什么
10.2.2 C++中的類
10.2.3 實(shí)現(xiàn)類成員函數(shù)
10.2.4 使用類
10.2.5 修改實(shí)現(xiàn)
10.2.6 小結(jié)
10.3 類的構(gòu)造函數(shù)和析構(gòu)函數(shù)
10.3.1 聲明和定義構(gòu)造函數(shù)
10.3.2 使用構(gòu)造函數(shù)
10.3.3 默認(rèn)構(gòu)造函數(shù)
10.3.4 析構(gòu)函數(shù)
10.3.5 改進(jìn)Stock類
10.3.6 構(gòu)造函數(shù)和析構(gòu)函數(shù)小結(jié)
10.4 this指針
10.5 對(duì)象數(shù)組
10.6 類作用域
10.6.1 作用域?yàn)轭惖某A?br />10.6.2 作用域內(nèi)枚舉(C++11)
10.7 抽象數(shù)據(jù)類型
10.8 總結(jié)
10.9 復(fù)習(xí)題
10.11 編程練習(xí)
第11章 使用類
11.1 運(yùn)算符重載
11.2 計(jì)算時(shí)間:一個(gè)運(yùn)算符重載示例
11.2.1 添加加法運(yùn)算符
11.2.2 重載限制
11.2.3 其他重載運(yùn)算符
11.3 友元
11.3.1 創(chuàng)建友元
11.3.2 常用的友元:重載<<運(yùn)算符
11.4 重載運(yùn)算符:作為成員函數(shù)還是非成員函數(shù)
11.5 再談重載:一個(gè)矢量類
11.5.1 使用狀態(tài)成員
11.5.2 為Vector類重載算術(shù)運(yùn)算符
11.5.3 對(duì)實(shí)現(xiàn)的說明
11.5.4 使用Vector類來模擬隨機(jī)漫步
11.6 類的自動(dòng)轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換
11.6.1 轉(zhuǎn)換函數(shù)
11.6.2 轉(zhuǎn)換函數(shù)和友元函數(shù)
11.7 總結(jié)
11.8 復(fù)習(xí)題
11.9 編程練習(xí)
第12章 類和動(dòng)態(tài)內(nèi)存分配
12.1 動(dòng)態(tài)內(nèi)存和類
12.1.1 復(fù)習(xí)示例和靜態(tài)類成員
12.1.2 特殊成員函數(shù)
12.1.3 回到Stringbad:復(fù)制構(gòu)造函數(shù)的哪里出了問題
12.1.4 Stringbad的其他問題:賦值運(yùn)算符
12.2 改進(jìn)后的新String類
12.2.1 修訂后的默認(rèn)構(gòu)造函數(shù)
12.2.2 比較成員函數(shù)
12.2.3 使用中括號(hào)表示法訪問字符
12.2.4 靜態(tài)類成員函數(shù)
12.2.5 進(jìn)一步重載賦值運(yùn)算符
12.3 在構(gòu)造函數(shù)中使用new時(shí)應(yīng)注意的事項(xiàng)
12.3.1 應(yīng)該和不應(yīng)該
12.3.2 包含類成員的類的逐成員復(fù)制
12.4 有關(guān)返回對(duì)象的說明
12.4.1 返回指向const對(duì)象的引用
12.4.2 返回指向非const對(duì)象的引用
12.4.3 返回對(duì)象
12.4.4 返回const對(duì)象
12.5 使用指向?qū)ο蟮闹羔?br />12.5.1 再談new和delete
12.5.2 指針和對(duì)象小結(jié)
12.5.3 再談定位new運(yùn)算符
12.6 復(fù)習(xí)各種技術(shù)
12.6.1 重載<<運(yùn)算符
12.6.2 轉(zhuǎn)換函數(shù)
12.6.3 其構(gòu)造函數(shù)使用new的類
12.7 隊(duì)列模擬
12.7.1 隊(duì)列類
12.7.2 Customer類
12.7.3 ATM模擬
12.8 總結(jié)
12.9 復(fù)習(xí)題
12.10 編程練習(xí)
第13章 類繼承
13.1 一個(gè)簡(jiǎn)單的基類
13.1.1 派生一個(gè)類
13.1.2 構(gòu)造函數(shù):訪問權(quán)限的考慮
13.1.3 使用派生類
13.1.4 派生類和基類之間的特殊關(guān)系
13.2 繼承:is-a關(guān)系
13.3 多態(tài)公有繼承
13.3.1 開發(fā)Brass類和BrassPlus類
13.4 靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編
13.4.1 指針和引用類型的兼容性
13.4.2 虛成員函數(shù)和動(dòng)態(tài)聯(lián)編
13.4.3 有關(guān)虛函數(shù)注意事項(xiàng)
13.5 訪問控制:protected
13.6 抽象基類
13.6.1 應(yīng)用ABC概念
13.6.2 ABC理念
13.7 繼承和動(dòng)態(tài)內(nèi)存分配
13.7.1 第一種情況:派生類不使用new
13.7.2 第二種情況:派生類使用new
13.7.3 使用動(dòng)態(tài)內(nèi)存分配和友元的繼承示例
13.8 類設(shè)計(jì)回顧
13.8.1 編譯器生成的成員函數(shù)
13.8.2 其他的類方法
13.8.3 公有繼承的考慮因素
13.8.4 類函數(shù)小結(jié)
13.9 總結(jié)
13.10 復(fù)習(xí)題
13.11 編程練習(xí)
第14章 C++中的代碼重用
14.1 包含對(duì)象成員的類
14.1.1 valarray類簡(jiǎn)介
14.1.2 Student類的設(shè)計(jì)
14.1.3 Student類示例
14.2 私有繼承
14.2.1 Student類示例(新版本)
14.2.2 使用包含還是私有繼承
14.2.3 保護(hù)繼承
14.2.4 使用using重新定義訪問權(quán)限
14.3 多重繼承
14.3.1 有多少Worker
14.3.2 哪個(gè)方法
14.3.3 MI小結(jié)
14.4 類模板
14.4.1 定義類模板
14.4.2 使用模板類
14.4.3 深入探討模板類
14.4.4 數(shù)組模板示例和非類型參數(shù)
14.4.5 模板多功能性
14.4.6 模板的具體化
14.4.7 成員模板
14.4.8 將模板用作參數(shù)
14.4.9 模板類和友元
14.4.10 模板別名(C++11)
14.5 總結(jié)
14.6 復(fù)習(xí)題
14.7 編程練習(xí)
第15章 友元、異常和其他
15.1 友元
15.1.1 友元類
15.1.2 友元成員函數(shù)
15.1.3 其他友元關(guān)系
15.2 嵌套類
15.2.1 嵌套類和訪問權(quán)限
15.2.2 模板中的嵌套
15.3 異常
15.3.1 調(diào)用abort( )
15.3.2 返回錯(cuò)誤碼
15.3.3 異常機(jī)制
15.3.4 將對(duì)象用作異常類型
15.3.4 異常規(guī)范和C++11
15.3.5 棧解退
15.3.6 其他異常特性
15.3.7 exception類
15.3.8 異常、類和繼承
15.3.9 異常何時(shí)會(huì)迷失方向
15.3.10 有關(guān)異常的注意事項(xiàng)
15.4 RTTI
15.4.1 RTTI的用途
15.4.2 RTTI的工作原理
15.5 類型轉(zhuǎn)換運(yùn)算符
15.6 總結(jié)
15.7 復(fù)習(xí)題
15.8 編程練習(xí)
第16章 string類和標(biāo)準(zhǔn)模板庫(kù)
16.1 string類
16.1.1 構(gòu)造字符串
16.1.2 string類輸入
16.1.3 使用字符串
16.1.4 string還提供了哪些功能
16.1.5 字符串種類
16.2 智能指針模板類
16.2.1 使用智能指針
16.2.2 有關(guān)智能指針的注意事項(xiàng)
16.2.3 unique_ptr為何優(yōu)于auto_ptr
16.2.4 選擇智能指針
16.3 標(biāo)準(zhǔn)模板庫(kù)
16.3.1 模板類vector
16.3.2 可對(duì)矢量執(zhí)行的操作
16.3.3 對(duì)矢量可執(zhí)行的其他操作
16.3.4 基于范圍的for循環(huán)(C++11)
16.4 泛型編程
16.4.1 為何使用迭代器
16.4.2 迭代器類型
16.4.3 迭代器層次結(jié)構(gòu)
16.4.4 概念、改進(jìn)和模型
16.4.5 容器種類
16.4.4 關(guān)聯(lián)容器
16.4.5 無序關(guān)聯(lián)容器(C++11)
16.5 函數(shù)對(duì)象
16.5.1 函數(shù)符概念
16.5.2 預(yù)定義的函數(shù)符
16.5.3 自適應(yīng)函數(shù)符和函數(shù)適配器
16.6 算法
16.6.1 算法組
16.6.2 算法的通用特征
16.6.3 STL和string類
16.6.4 函數(shù)和容器方法
16.6.5 使用STL
16.7 其他庫(kù)
16.7.1 vector、valarray和array
16.7.2 模板initializer_list(C++11)
16.7.3 使用initializer_list
16.8 總結(jié)
16.9 復(fù)習(xí)題
16.10 編程練習(xí)
第17章 輸入、輸出和文件
17.1 C++輸入和輸出概述
17.1.1 流和緩沖區(qū)
17.1.2 流、緩沖區(qū)和iostream文件
17.1.3 重定向
17.2 使用cout進(jìn)行輸出
17.2.1 重載的<<運(yùn)算符
17.2.2 其他ostream方法
17.2.3 刷新輸出緩沖區(qū)
17.2.4 用cout進(jìn)行格式化
17.3 使用cin進(jìn)行輸入
17.3.1 cin>>如何檢查輸入
17.3.2 流狀態(tài)
17.3.3 其他istream類方法
17.3.4 其他istream方法
17.4 文件輸入和輸出
17.4.1 簡(jiǎn)單的文件I/O
17.4.2 流狀態(tài)檢查和is_open( )
17.4.3 打開多個(gè)文件
17.4.3 命令行處理技術(shù)
17.4.5 文件模式
17.4.6 隨機(jī)存取
17.5 內(nèi)核格式化
17.6 總結(jié)
17.7 復(fù)習(xí)題
17.8 編程練習(xí)
第18章 探討C++新標(biāo)準(zhǔn)
18.1 復(fù)習(xí)前面介紹過的C++11功能
18.1.1 新類型
18.8.2 統(tǒng)一的初始化
18.1.3 聲明
18.1.4 智能指針
18.1.5 異常規(guī)范方面的修改
18.1.6 作用域內(nèi)枚舉
18.1.7 對(duì)類的修改
18.1.8 模板和STL方面的修改
18.1.9 右值引用
18.2 移動(dòng)語義和右值引用
18.2.1 為何需要移動(dòng)語義
18.2.2 一個(gè)移動(dòng)示例
18.2.3 移動(dòng)構(gòu)造函數(shù)解析
18.2.4 賦值
18.2.5 強(qiáng)制移動(dòng)
18.3 新的類功能
18.3.1 特殊的成員函數(shù)
18.3.2 默認(rèn)的方法和禁用的方法
18.3.3 委托構(gòu)造函數(shù)
18.3.4 繼承構(gòu)造函數(shù)
18.3.5 管理虛方法:override和final
18.4 Lambda函數(shù)
18.4.1 比較函數(shù)指針、函數(shù)符和Lambda函數(shù)
18.4.2 為何使用lambda
18.5 包裝器
18.5.1 包裝器function及模板的低效性
18.5.2 修復(fù)問題
18.5.3 其他方式
18.6 可變參數(shù)模板
18.6.1 模板和函數(shù)參數(shù)包
18.6.2 展開參數(shù)包
18.6.3 在可變參數(shù)模板函數(shù)中使用遞歸
18.7 C++11新增的其他功能
18.7.1 并行編程
18.7.2 新增的庫(kù)
18.7.3 低級(jí)編程
18.7.4 雜項(xiàng)
18.8 語言變化
18.8.1 Boost項(xiàng)目
18.8.2 TR1
18.8.3 使用Boost
18.9 接下來的任務(wù)
18.10 總結(jié)
18.11 復(fù)習(xí)題
18.12 編程練習(xí)
附錄A 計(jì)數(shù)系統(tǒng)
A.1 十進(jìn)制數(shù)
A.2 八進(jìn)制整數(shù)
A.3 十六進(jìn)制數(shù)
A.4 二進(jìn)制數(shù)
A.5 二進(jìn)制和十六進(jìn)制
附錄B C++保留字
B.1 C++關(guān)鍵字
B.2 替代標(biāo)記
B.3 C++庫(kù)保留名稱
B.4 有特殊含義的標(biāo)識(shí)符
附錄C ASCII字符集
附錄D 運(yùn)算符優(yōu)先級(jí)
附錄E 其他運(yùn)算符
E.1 按位運(yùn)算符
E.1.1 移位運(yùn)算符
E.1.2 邏輯按位運(yùn)算符
E.1.3 按位運(yùn)算符的替代表示
E.1.4 幾種常用的按位運(yùn)算符技術(shù)
E.2 成員解除引用運(yùn)算符
E.3 alignof(C++11)
E.4 noexcept(C++11)
附錄F 模板類string
F.1 13種類型和一個(gè)常量
F.2 數(shù)據(jù)信息、構(gòu)造函數(shù)及其他
F.2.1 默認(rèn)構(gòu)造函數(shù)
F.2.2 使用C-風(fēng)格字符串的構(gòu)造函數(shù)
F.2.3 使用部分C-風(fēng)格字符串的構(gòu)造函數(shù)
F.2.4 使用左值引用的構(gòu)造函數(shù)
F.2.5 使用右值引用的構(gòu)造函數(shù)(C++11)
F.2.6 使用一個(gè)字符的n個(gè)副本的構(gòu)造函數(shù)
F.2.7 使用區(qū)間的構(gòu)造函數(shù)
F.2.8 使用初始化列表的構(gòu)造函數(shù)(C++11)
F.2.9 內(nèi)存雜記
F.3 字符串存取
F.4 基本賦值
F.5 字符串搜索
F.5.1 find( )系列
F.5.2 rfind( )系列
F.5.3 find_first_of( )系列
F.5.4 find_last_of( )系列
F.5.5 find_first_not_of( )系列
F.5.6 find_last_not_of( )系列
F.6 比較方法和函數(shù)
F.7 字符串修改方法
F.7.1 用于追加和相加的方法
F.7.2 其他賦值方法
F.7.3 插入方法
F.7.4 清除方法
F.7.5 替換方法
F.7.6 其他修改方法:copy( )和swap( )
F.8 輸出和輸入
附錄G 標(biāo)準(zhǔn)模板庫(kù)方法和函數(shù)
G.1 STL和C++11
G.1.1 新增的容器
G.1.2 對(duì)C++98容器所做的修改
G.2 大部分容器都有的成員
G.3 序列容器的其他成員
G.4 set和map的其他操作
G.4 無序關(guān)聯(lián)容器(C++11)
G.5 STL函數(shù)
G.5.1 非修改式序列操作
G.5.2 修改式序列操作
G.5.3 排序和相關(guān)操作
G.5.4 數(shù)值運(yùn)算
附錄H 精選讀物和網(wǎng)上資源
H.1 精選讀物
H.2 網(wǎng)上資源
附錄I 轉(zhuǎn)換為ISO標(biāo)準(zhǔn)C++
I.1 使用一些預(yù)處理器編譯指令的替代品
I.1.1 使用const而不是#define來定義常量
I.1.2 使用inline而不是# define來定義小型函數(shù)
I.2 使用函數(shù)原型
I.3 使用類型轉(zhuǎn)換
I.4 熟悉C++特性
I.5 使用新的頭文件
I.6 使用名稱空間
I.7 使用智能指針
I.8 使用string類
I.9 使用STL
附錄J 復(fù)習(xí)題答案
第2章復(fù)習(xí)題答案
第3章復(fù)習(xí)題答案
第4章復(fù)習(xí)題答案
第5章復(fù)習(xí)題答案
第6章復(fù)習(xí)題答案
第7章復(fù)習(xí)題答案
第8章復(fù)習(xí)題答案
第9章復(fù)習(xí)題答案
第10章復(fù)習(xí)題答案
第11章復(fù)習(xí)題答案
第12章復(fù)習(xí)題答案
第13章復(fù)習(xí)題答案
第14章復(fù)習(xí)題答案
第15章復(fù)習(xí)題答案
第16章復(fù)習(xí)題答案
第17章復(fù)習(xí)題答案
第18章復(fù)習(xí)題答案