內(nèi)容簡(jiǎn)介C++是近年來(lái)國(guó)內(nèi)外廣泛使用的現(xiàn)代計(jì)算機(jī)語(yǔ)言,它既支持面向過(guò)程的程序設(shè)計(jì),也支持基于對(duì)象和面向?qū)ο蟪绦蛟O(shè)計(jì)。國(guó)內(nèi)許多高校已陸續(xù)開(kāi)設(shè)了C++程序設(shè)計(jì)課程。但是,由于C++涉及概念很多,語(yǔ)法比較復(fù)雜,內(nèi)容十分廣泛,使不少人感到學(xué)習(xí)難度較大,難以入門(mén)。本書(shū)作者深入調(diào)查了我國(guó)大學(xué)的程序設(shè)計(jì)課程的現(xiàn)狀和發(fā)展趨勢(shì),參閱了國(guó)內(nèi)外數(shù)十種有關(guān)C++的教材,認(rèn)真分析了學(xué)習(xí)者在學(xué)習(xí)過(guò)程中遇到的困難,研究了初學(xué)者的認(rèn)識(shí)規(guī)律。在本書(shū)中做到準(zhǔn)確定位,合理取舍內(nèi)容,設(shè)計(jì)了讀者易于學(xué)習(xí)的教材體系,并且以通俗易懂的語(yǔ)言化解了許多復(fù)雜的概念,大大減少了初學(xué)者學(xué)習(xí)C++的困難。考慮到許多讀者在學(xué)習(xí)C++前未學(xué)過(guò)其他語(yǔ)言,本書(shū)把入門(mén)起點(diǎn)降低到,讀者不需要具備C語(yǔ)言的基礎(chǔ)。本書(shū)內(nèi)容全面,例題豐富,概念清晰,循序漸進(jìn),易于學(xué)習(xí)。本書(shū)是依據(jù)ANSIC++標(biāo)準(zhǔn)進(jìn)行介紹的,引導(dǎo)讀者從一開(kāi)始就按標(biāo)準(zhǔn)C++的規(guī)定編程。本書(shū)特色: (1)準(zhǔn)確定位,合理取舍。 本書(shū)使讀者對(duì)C++的全貌有基本的認(rèn)識(shí),用容易理解的方法講清楚有關(guān)的基本概念和基本方法。 (2)全新體系,內(nèi)容翔實(shí)。 本書(shū)以面向過(guò)程的程序設(shè)計(jì)為切入點(diǎn),從編寫(xiě)簡(jiǎn)單的程序開(kāi)始,循序漸進(jìn),由面向過(guò)程、基于對(duì)象到面向?qū)ο?,逐步深入,符合讀者的認(rèn)識(shí)規(guī)律。 (3)例題豐富,通俗易懂。 本書(shū)作者花費(fèi)了很大的精力去考慮怎樣使讀者易于接受和理解,盡量用通俗易懂的方法和語(yǔ)言敘述復(fù)雜的概念,力求減少初學(xué)者學(xué)習(xí)C++的困難。書(shū)中所舉的程序,是從教學(xué)的角度考慮的,非常切合教學(xué)之用。 (4)體現(xiàn)C++標(biāo)準(zhǔn)。 本書(shū)依據(jù)C++標(biāo)準(zhǔn)進(jìn)行介紹,引導(dǎo)學(xué)生學(xué)習(xí)標(biāo)準(zhǔn)C++,而不僅學(xué)習(xí)依賴(lài)于某一特定環(huán)境下的 方言化 的C++。 (5)配套齊全,考慮縱深。本書(shū)的配套資源: 《C++程序設(shè)計(jì)題解與上機(jī)指導(dǎo)》(附光盤(pán),包括教材中全部例題的源程序) 《C++程序編程實(shí)踐指導(dǎo)》(幫助學(xué)生提高編程能力) 向選用本教材的教師免費(fèi)提供講課的電子演示文稿。本書(shū)配有兩本輔導(dǎo)教材,即《C++程序設(shè)計(jì)題解上機(jī)指導(dǎo)》和《C++編程實(shí)踐指導(dǎo)》。本書(shū)是大學(xué)各專(zhuān)業(yè)學(xué)生學(xué)習(xí)C++的基礎(chǔ)教材,也是適于初學(xué)者學(xué)習(xí)的教材。即使沒(méi)有教師講授,讀者也能看懂本書(shū)的大部分內(nèi)容。 章節(jié)目錄第1章C++的初步知識(shí)3*1.1從C到C++3*1.2最簡(jiǎn)單的C++程序51.3C++程序的構(gòu)成和書(shū)寫(xiě)形式121.4C++程序的編寫(xiě)和實(shí)現(xiàn)131.5關(guān)于C++上機(jī)實(shí)踐15習(xí)題16第2章數(shù)據(jù)類(lèi)型與表達(dá)式192.1C++的數(shù)據(jù)類(lèi)型192.2常量212.2.1什么是常量212.2.2數(shù)值常量212.2.3字符常量232.2.4符號(hào)常量262.3變量272.3.1什么是變量272.3.2變量名規(guī)則282.3.3定義變量282.3.4為變量賦初值292.3.5常變量302.4C++的運(yùn)算符312.5算術(shù)運(yùn)算符與算術(shù)表達(dá)式322.5.1基本的算術(shù)運(yùn)算符322.5.2算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性322.5.3表達(dá)式中各類(lèi)數(shù)值型數(shù)據(jù)間的混合運(yùn)算322.5.4自增和自減運(yùn)算符332.5.5強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符352.6賦值運(yùn)算符與賦值表達(dá)式362.6.1賦值運(yùn)算符362.6.2賦值過(guò)程中的類(lèi)型轉(zhuǎn)換362.6.3復(fù)合的賦值運(yùn)算符382.6.4賦值表達(dá)式392.7逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式40習(xí)題41C++程序設(shè)計(jì)目錄第2篇面向過(guò)程的程序設(shè)計(jì)第3章程序設(shè)計(jì)初步453.1面向過(guò)程的程序設(shè)計(jì)和算法453.1.1算法的概念453.1.2算法的表示463.2C++程序和語(yǔ)句473.3賦值語(yǔ)句493.4C++的輸入與輸出50*3.4.1輸入流與輸出流的基本操作51*3.4.2在輸入流與輸出流中使用控制符533.4.3用getchar和putchar函數(shù)進(jìn)行字符的輸入和輸出553.4.4用scanf和printf函數(shù)進(jìn)行輸入和輸出573.5編寫(xiě)順序結(jié)構(gòu)的程序583.6關(guān)系運(yùn)算和邏輯運(yùn)算583.6.1關(guān)系運(yùn)算和關(guān)系表達(dá)式593.6.2邏輯常量和邏輯變量603.6.3邏輯運(yùn)算和邏輯表達(dá)式613.7選擇結(jié)構(gòu)和if語(yǔ)句633.7.1if語(yǔ)句的3種形式643.7.2if語(yǔ)句的嵌套663.8條件運(yùn)算符和條件表達(dá)式673.9多分支選擇結(jié)構(gòu)和switch語(yǔ)句683.10編寫(xiě)選擇結(jié)構(gòu)的程序703.11循環(huán)結(jié)構(gòu)和循環(huán)語(yǔ)句733.11.1用while語(yǔ)句構(gòu)成循環(huán)733.11.2用do|while語(yǔ)句構(gòu)成循環(huán)743.11.3用for語(yǔ)句構(gòu)成循環(huán)753.11.4幾種循環(huán)的比較783.12循環(huán)的嵌套793.13break語(yǔ)句和continue語(yǔ)句793.14編寫(xiě)循環(huán)結(jié)構(gòu)的程序80習(xí)題85第4章函數(shù)與預(yù)處理884.1概述884.2定義函數(shù)的一般形式904.2.1定義無(wú)參函數(shù)的一般形式904.2.2定義有參函數(shù)的一般形式914.3函數(shù)參數(shù)和函數(shù)的值914.3.1形式參數(shù)和實(shí)際參數(shù)914.3.2函數(shù)的返回值934.4函數(shù)的調(diào)用944.4.1函數(shù)調(diào)用的一般形式944.4.2函數(shù)調(diào)用的方式944.4.3對(duì)被調(diào)用函數(shù)的聲明和函數(shù)原型95*4.5內(nèi)置函數(shù)97*4.6函數(shù)的重載99*4.7函數(shù)模板102*4.8有默認(rèn)參數(shù)的函數(shù)1034.9函數(shù)的嵌套調(diào)用1054.10函數(shù)的遞歸調(diào)用1094.11局部變量和全局變量1124.11.1局部變量1124.11.2全局變量1134.12變量的存儲(chǔ)類(lèi)別1154.12.1動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式1154.12.2自動(dòng)變量1164.12.3用static聲明靜態(tài)局部變量1164.12.4用register聲明寄存器變量1194.12.5用extern聲明外部變量1194.12.6用static聲明靜態(tài)外部變量1214.13變量屬性小結(jié)1224.14關(guān)于變量的聲明和定義1244.15內(nèi)部函數(shù)和外部函數(shù)1254.15.1內(nèi)部函數(shù)1254.15.2外部函數(shù)1254.16預(yù)處理命令1274.16.1宏定義1274.16.2 文件包含 處理1284.16.3條件編譯131習(xí)題132第5章數(shù)組1345.1數(shù)組的概念1345.2一維數(shù)組的定義和引用1355.2.1定義一維數(shù)組1355.2.2引用一維數(shù)組的元素1355.2.3一維數(shù)組的初始化1365.2.4一維數(shù)組程序舉例1375.3二維數(shù)組的定義和引用1395.3.1定義二維數(shù)組1395.3.2二維數(shù)組的引用1405.3.3二維數(shù)組的初始化1405.3.4二維數(shù)組程序舉例1425.4用數(shù)組名作函數(shù)參數(shù)1445.5字符數(shù)組1485.5.1字符數(shù)組的定義和初始化1485.5.2字符數(shù)組的賦值與引用1495.5.3字符串和字符串結(jié)束標(biāo)志1505.5.4字符數(shù)組的輸入輸出1515.5.5字符串處理函數(shù)1525.5.6字符數(shù)組應(yīng)用舉例155*5.6C++處理字符串的方法 字符串類(lèi)與字符串變量1565.6.1字符串變量的定義和引用1565.6.2字符串變量的運(yùn)算1575.6.3字符串?dāng)?shù)組1585.6.4字符串運(yùn)算舉例159習(xí)題162第6章指針1646.1指針的概念1646.2變量與指針1666.2.1定義指針變量1666.2.2引用指針變量1676.2.3指針作為函數(shù)參數(shù)1706.3數(shù)組與指針1746.3.1指向數(shù)組元素的指針1746.3.2用指針變量作函數(shù)參數(shù)接收數(shù)組地址1786.3.3多維數(shù)組與指針1806.4字符串與指針1846.5函數(shù)與指針1866.5.1用函數(shù)指針變量調(diào)用函數(shù)1866.5.2用指向函數(shù)的指針作函數(shù)參數(shù)1876.6返回指針值的函數(shù)1886.7指針數(shù)組和指向指針的指針1886.7.1指針數(shù)組的概念1886.7.2指向指針的指針1906.8有關(guān)指針的數(shù)據(jù)類(lèi)型和指針運(yùn)算的小結(jié)1926.8.1有關(guān)指針的數(shù)據(jù)類(lèi)型的小結(jié)1926.8.2指針運(yùn)算小結(jié)193*6.9引用1946.9.1什么是變量的引用1946.9.2引用的簡(jiǎn)單使用1956.9.3引用作為函數(shù)參數(shù)195習(xí)題199第7章自定義數(shù)據(jù)類(lèi)型2017.1結(jié)構(gòu)體類(lèi)型2017.1.1結(jié)構(gòu)體概述2017.1.2結(jié)構(gòu)體類(lèi)型變量的定義方法及其初始化2027.1.3結(jié)構(gòu)體變量的引用2057.1.4結(jié)構(gòu)體數(shù)組2077.1.5指向結(jié)構(gòu)體變量的指針2117.1.6結(jié)構(gòu)體類(lèi)型數(shù)據(jù)作為函數(shù)參數(shù)214*7.1.7動(dòng)態(tài)分配和撤銷(xiāo)內(nèi)存的運(yùn)算符new和delete2177.2共用體2197.2.1共用體的概念2197.2.2對(duì)共用體變量的訪問(wèn)方式2207.2.3共用體類(lèi)型數(shù)據(jù)的特點(diǎn)2207.3枚舉類(lèi)型2227.4用typedef聲明類(lèi)型225習(xí)題227第3篇基于對(duì)象的程序設(shè)計(jì)第8章類(lèi)和對(duì)象2318.1面向?qū)ο蟪绦蛟O(shè)計(jì)方法概述2318.1.1什么是面向?qū)ο蟮某绦蛟O(shè)計(jì)2318.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)的特點(diǎn)2348.1.3類(lèi)和對(duì)象的作用2358.1.4面向?qū)ο蟮能浖_(kāi)發(fā)2368.2類(lèi)的聲明和對(duì)象的定義2388.2.1類(lèi)和對(duì)象的關(guān)系2388.2.2聲明類(lèi)類(lèi)型2388.2.3定義對(duì)象的方法2408.2.4類(lèi)和結(jié)構(gòu)體類(lèi)型的異同2428.3類(lèi)的成員函數(shù)2438.3.1成員函數(shù)的性質(zhì)2438.3.2在類(lèi)外定義成員函數(shù)2448.3.3inline成員函數(shù)2458.3.4成員函數(shù)的存儲(chǔ)方式2468.4對(duì)象成員的引用2488.4.1通過(guò)對(duì)象名和成員運(yùn)算符訪問(wèn)對(duì)象中的成員2488.4.2通過(guò)指向?qū)ο蟮闹羔樤L問(wèn)對(duì)象中的成員2498.4.3通過(guò)對(duì)象的引用變量來(lái)訪問(wèn)對(duì)象中的成員2498.5類(lèi)的封裝性和信息隱蔽2498.5.1公用接口與私有實(shí)現(xiàn)的分離2498.5.2類(lèi)聲明和成員函數(shù)定義的分離2518.5.3面向?qū)ο蟪绦蛟O(shè)計(jì)中的幾個(gè)名詞2548.6類(lèi)和對(duì)象的簡(jiǎn)單應(yīng)用舉例254習(xí)題261第9章關(guān)于類(lèi)和對(duì)象的進(jìn)一步討論2639.1構(gòu)造函數(shù)2639.1.1對(duì)象的初始化2639.1.2構(gòu)造函數(shù)的作用2649.1.3帶參數(shù)的構(gòu)造函數(shù)2669.1.4用參數(shù)初始化表對(duì)數(shù)據(jù)成員初始化2679.1.5構(gòu)造函數(shù)的重載2679.1.6使用默認(rèn)參數(shù)的構(gòu)造函數(shù)2699.2析構(gòu)函數(shù)2729.3調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序2749.4對(duì)象數(shù)組2759.5對(duì)象指針2779.5.1指向?qū)ο蟮闹羔?779.5.2指向?qū)ο蟪蓡T的指針2789.5.3this指針2819.6共用數(shù)據(jù)的保護(hù)2829.6.1常對(duì)象2839.6.2常對(duì)象成員2849.6.3指向?qū)ο蟮某V羔?859.6.4指向常對(duì)象的指針變量2859.6.5對(duì)象的常引用2899.6.6const型數(shù)據(jù)的小結(jié)2909.7對(duì)象的動(dòng)態(tài)建立和釋放2909.8對(duì)象的賦值和復(fù)制2919.8.1對(duì)象的賦值2919.8.2對(duì)象的復(fù)制2939.9靜態(tài)成員2959.9.1靜態(tài)數(shù)據(jù)成員2969.9.2靜態(tài)成員函數(shù)2989.10友元3019.10.1友元函數(shù)3019.10.2友元類(lèi)3059.11類(lèi)模板306習(xí)題310第10章運(yùn)算符重載31410.1什么是運(yùn)算符重載31410.2運(yùn)算符重載的方法31610.3重載運(yùn)算符的規(guī)則31810.4運(yùn)算符重載函數(shù)作為類(lèi)成員函數(shù)和友元函數(shù)32010.5重載雙目運(yùn)算符32310.6重載單目運(yùn)算符32810.7重載流插入運(yùn)算符和流提取運(yùn)算符33110.7.1重載流插入運(yùn)算符 33110.7.2重載流提取運(yùn)算符 33310.8不同類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換33510.8.1標(biāo)準(zhǔn)類(lèi)型數(shù)據(jù)間的轉(zhuǎn)換33510.8.2轉(zhuǎn)換構(gòu)造函數(shù)33610.8.3類(lèi)型轉(zhuǎn)換函數(shù)338習(xí)題343第4篇面向?qū)ο蟮某绦蛟O(shè)計(jì)第11章繼承與派生34711.1繼承與派生的概念34711.2派生類(lèi)的聲明方式35011.3派生類(lèi)的構(gòu)成35111.4派生類(lèi)成員的訪問(wèn)屬性35211.4.1公用繼承35311.4.2私有繼承35511.4.3保護(hù)成員和保護(hù)繼承35811.4.4多級(jí)派生時(shí)的訪問(wèn)屬性36111.5派生類(lèi)的構(gòu)造函數(shù)和析構(gòu)函數(shù)36311.5.1簡(jiǎn)單的派生類(lèi)的構(gòu)造函數(shù)36311.5.2有子對(duì)象的派生類(lèi)的構(gòu)造函數(shù)36611.5.3多層派生時(shí)的構(gòu)造函數(shù)36911.5.4派生類(lèi)構(gòu)造函數(shù)的特殊形式37211.5.5派生類(lèi)的析構(gòu)函數(shù)37211.6多重繼承37311.6.1聲明多重繼承的方法37311.6.2多重繼承派生類(lèi)的構(gòu)造函數(shù)37311.6.3多重繼承引起的二義性問(wèn)題37611.6.4虛基類(lèi)37911.7基類(lèi)與派生類(lèi)的轉(zhuǎn)換38411.8繼承與組合38811.9繼承在軟件開(kāi)發(fā)中的重要意義389習(xí)題390第12章多態(tài)性與虛函數(shù)39512.1多態(tài)性的概念39512.2一個(gè)典型的例子39612.3虛函數(shù)40112.3.1虛函數(shù)的作用40112.3.2靜態(tài)關(guān)聯(lián)與動(dòng)態(tài)關(guān)聯(lián)40512.3.3在什么情況下應(yīng)當(dāng)聲明虛函數(shù)40612.3.4虛析構(gòu)函數(shù)40712.4純虛函數(shù)與抽象類(lèi)40812.4.1純虛函數(shù)40812.4.2抽象類(lèi)40912.4.3應(yīng)用實(shí)例410習(xí)題416第13章輸入輸出流41713.1C++的輸入和輸出41713.1.1輸入輸出的含義41713.1.2C++的I/O對(duì)C的發(fā)展 類(lèi)型安全和可擴(kuò)展性41713.1.3C++的輸入輸出流41813.2標(biāo)準(zhǔn)輸出流42213.2.1cout,cerr和clog流42213.2.2格式輸出42513.2.3用流成員函數(shù)put輸出字符42913.3標(biāo)準(zhǔn)輸入流43013.3.1cin流43013.3.2用于字符輸入的流成員函數(shù)43213.3.3istream類(lèi)的其他成員函數(shù)43613.4文件操作與文件流43913.4.1文件的概念43913.4.2文件流類(lèi)與文件流對(duì)象44013.4.3文件的打開(kāi)與關(guān)閉44113.4.4對(duì)ASCII文件的操作44313.4.5對(duì)二進(jìn)制文件的操作44813.5字符串流453習(xí)題458第14章C++工具45914.1異常處理45914.1.1異常處理的任務(wù)45914.1.2異常處理的方法46014.1.3在函數(shù)聲明中進(jìn)行異常情況指定46714.1.4在異常處理中處理析構(gòu)函數(shù)46714.2命名空間46914.2.1為什么需要命名空間46914.2.2什么是命名空間47314.2.3使用命名空間解決名字沖突47514.2.4使用命名空間成員的方法47714.2.5無(wú)名的命名空間47914.2.6標(biāo)準(zhǔn)命名空間std47914.3使用早期的函數(shù)庫(kù)480習(xí)題481附錄A常用字符與ASCII代碼對(duì)照表483附錄B運(yùn)算符與結(jié)合性484參考文獻(xiàn)486