C++面向?qū)ο蟪绦蛟O計(第4版)
定 價:59.9 元
叢書名:高等院校計算機基礎教育課程體系特色教材系列
本書是供已學過C語言的讀者學習C 面向?qū)ο蟪绦蛟O計的教材。C 是國內(nèi)外廣泛學習和使用的支持面向?qū)ο蟪绦蛟O計的現(xiàn)代計算機高級語言,國內(nèi)許多高校已陸續(xù)開設了C 程序設計課程。但是,由于C 涉及的概念很多,語法比較復雜,內(nèi)容十分廣泛,不少人感到學習難度很大,難以入門。針對這種情況,作者深入研究了C 的內(nèi)容和初學者的認知規(guī)律,專門為已學習過C語言的讀者構(gòu)建了便于學習的教材體系,編寫了這本C 面向?qū)ο蟪绦蛟O計入門教材。本書對面向?qū)ο蟪绦蛟O計的基本概念和C 語言的基本內(nèi)容作了全面、通俗而詳盡的說明,并且把這兩方面有機地結(jié)合起來。第1章介紹在面向過程程序設計領域中C 對C的擴充,第2章初步介紹面向?qū)ο蟪绦蛟O計的基本知識,第3~8章由淺入深地介紹怎樣利用C 編寫程序,在此過程中自然地介紹了面向?qū)ο蟪绦蛟O計方法的應用。本書內(nèi)容全面,概念清晰,例題豐富,通俗易懂,易于學習,可作為大學各專業(yè)學習C 面向?qū)ο蟪绦蛟O計的基礎教材,也適于C 的初學者自學。即使沒有教師講授,讀者也基本能看懂本書的大部分內(nèi)容。本書配有兩本輔導教材:《C 面向?qū)ο蟪绦蛟O計(第4版)學習輔導》和《C 程序設計實踐指導》,供教學參考。
本書為普通高等教育十一五國家級規(guī)劃教材,獲全國高校出版社優(yōu)秀暢銷書一等獎。本書內(nèi)容全面,概念清晰,例題豐富,通俗易懂,深入淺出,易于學習,可作為大學各專業(yè)學習C 面向?qū)ο蟪绦蛟O計的基礎教材,也適于C 的初學者自學。本書內(nèi)容包括面向?qū)ο蟪绦蛟O計的基本理論概念和C 語言的基本內(nèi)容,并且把這兩方面有機地結(jié)合起來。第一章介紹面向過程程序設計領域中C 對C的擴充,第二章簡要而通俗清晰地介紹了面向?qū)ο蟪绦蛟O計的基本知識,在后續(xù)各章中由淺入深地介紹怎樣編寫C 程序,在這過程中自然地具體地介紹了面向?qū)ο蟪绦蛟O計方法的應用。
本書是一本介紹C 面向?qū)ο蟪绦蛟O計的入門基礎教材。目前的主流計算機的指令執(zhí)行是過程導向的,每個步驟(計算機指令)是依次執(zhí)行的。因此早期的編程語言也是面向過程的,設計者必須充分地考慮程序的每個細節(jié),要指定程序在每一環(huán)節(jié)應執(zhí)行的動作。C語言是面向過程的結(jié)構(gòu)化和模塊化的語言,C語言是編寫UNIX操作系統(tǒng)的語言,功能強大,使用靈活。它在處理小型問題時得心應手,但在處理大型復雜問題時就顯得力不從心了。現(xiàn)代計算機應用已經(jīng)遠遠超出了科學計算和控制計算機操作的層面,而是更多地去解決各種各樣現(xiàn)實生活與工作中的復雜問題,如模擬氣象現(xiàn)象,制作文字、圖形、視頻作品等。為了處理復雜應用程序,計算機科學家提出了面向?qū)ο蟪绦蛟O計的理論,并于20世紀末期在C語言的基礎上推出支持面向?qū)ο蟮腃 語言,為處理復雜應用程序提供了有力的工具。近年來,國內(nèi)許多大學的計算機類專業(yè)都開設了C 程序設計課程,一些大學的非計算機專業(yè)也開設了C 面向?qū)ο蟪绦蛟O計課程,許多學過C語言程序設計的人也想了解和學習C 和面向?qū)ο蟪绦蛟O計的有關知識。但是,由于C 涉及概念很多,語法比較復雜,內(nèi)容十分廣泛,使不少人感到學習難度較大,難以入門。應讀者的要求,作者在十多年前編著了《C 程序設計》一書,由清華大學出版社出版并向全國發(fā)行。該書以未學過C語言的讀者為對象,從面向過程入手介紹程序設計的基本知識和方法,然后介紹用C 進行面向?qū)ο蟪绦蛟O計的方法。由于內(nèi)容全面,概念清晰,通俗易懂,該書出版后,受到各校師生的歡迎和好評。目前在大學理工類專業(yè),普遍開設了C語言程序設計的課程,許多學生在學習C語言后希望對C 面向?qū)ο蟪绦蛟O計有所了解,以便日后在需要時能較快地進入該領域。很多師生希望我能編寫一本以C語言為起點的C 教材。為此,幾年前我在清華大學出版社出版了《C 面向?qū)ο蟪绦蛟O計》一書。該書是在《C 程序設計》一書的基礎上編寫而成的,已學習過C語言程序設計的讀者,不必再重新學習面向過程程序設計的部分,而可以直接從面向?qū)ο蟪绦蛟O計入手。作者將《C 程序設計》一書中介紹面向?qū)ο蟪绦蛟O計的內(nèi)容抽出來改寫后單獨成書,并且重新寫了第1章從C到C ,介紹C 面向?qū)ο蟪绦蛟O計的初步知識以及C 對C語言在面向過程程序設計方面的擴展,為以后各章的學習打下基礎。這樣的安排使內(nèi)容更集中,篇幅更緊湊。該書仍然保持了通俗易懂、貼近讀者、容易入門的特點。希望有助于大學生學習C 課程,初步掌握面向?qū)ο蟪绦蛟O計的方法。幾年前,作者曾對該書進行過修訂,出版了《C 面向?qū)ο蟪绦蛟O計》(第3版),最近根據(jù)教學實踐的情況,又進行一次全面的修訂。這次修訂,在保留原書內(nèi)容全面、概念清晰的優(yōu)點的基礎上,從章節(jié)標題到正文都進行了不少修改和補充,使之更加通俗易懂,容易學習,F(xiàn)在出版《C 面向?qū)ο蟪绦蛟O計》(第4版),即本書。在此,對本書的指導思想作以下的說明。1. 教材要準確定位首先要明確教材是為什么人寫的,他們學習C 的目的是什么,要學到什么程度,不能無的放矢。推出C 的初衷是解決大型復雜應用軟件開發(fā)中遇到的問題,提高軟件的開發(fā)效率。只有參加過研制相對大型軟件的人才會真正體驗到C 的優(yōu)越性。應當說明,本書的主要對象不是C 的專業(yè)開發(fā)人員,而是高校各專業(yè)的大學生和自學現(xiàn)代編程語言的讀者,本書不是程序員培訓班教材。本書的讀者一般并無實際程序開發(fā)的經(jīng)驗,將來多數(shù)人也不一定成為專業(yè)的編程人員。不可奢望,通過幾十小時的學習,就能使一個沒有C 程序設計基礎的初學者變成一個熟練的C 開發(fā)人員。應當有實事求是的分析和估計。本書的定位是入門與基礎。用有效的方法使讀者順利入門,通過學習,打好基礎。通過學習本書,多數(shù)讀者會有以下收獲:①清晰地了解面向?qū)ο蟪绦蛟O計的方法以及C 的主要功能與特點;②能夠用C 編寫簡單的面向?qū)ο蟮某绦;③能看懂別人編寫的規(guī)模比較小的C 程序; ④奠定進一步學習和應用的良好基礎。也就是從不知到初知,從不會到初會。入了門,有了良好的基礎,以后提高和應用就不困難了。2. 要設計合適的教材體系,合理取舍內(nèi)容學習C 面向?qū)ο蟪绦蛟O計,應當對面向?qū)ο蟮姆椒ê虲 的基本特點有基本的了解。C 面向?qū)ο蟪绦蛟O計涉及面向?qū)ο蟪绦蛟O計的理論和C 語言的語法兩方面,都很重要。本書主要介紹C 處理問題的面向?qū)ο蟮乃季S方式和C 語言的基本內(nèi)容。我們不是抽象地介紹面向?qū)ο蟪绦蛟O計的理論,也不是枯燥地介紹C 的語法,而是以程序設計為中心把這兩方面有機地結(jié)合起來。在介紹用C 語言編程的過程中,自然而然地引出面向?qū)ο蟪绦蛟O計的有關概念,通過C 編程過程理解面向?qū)ο蟪绦蛟O計方法,二者緊密結(jié)合,相得益彰。本書內(nèi)容系統(tǒng)而全面。面向?qū)ο蟪绦蛟O計有4個主要特點:抽象、封裝、繼承和多態(tài)性,在C 語言中都有相應的機制來實現(xiàn)它們。作為教材,不能忽略C 的主要內(nèi)容,本書的內(nèi)容全面涵蓋了以上4方面,提供了詳細而通俗的介紹和編程舉例。我們努力使讀者通過較短時間的學習,能對面向?qū)ο蠓椒ê虲 有基本和全面的了解,而不是陷于煩瑣的細節(jié)之中。教材不同于使用手冊。手冊的任務是提供無所不包的使用細節(jié)以備查詢,而教材的任務是用容易理解的方法講清楚有關的基本概念和基本方法。不能把教材寫成包羅萬象的手冊,否則將會使篇幅過大,而且會沖淡重點,主次不分,使讀者感到枯燥無味。本書的做法是:從應用出發(fā),對編程所用到的最基本內(nèi)容和注意的問題都作了詳細的說明,但是并不羅列C 語法中過多的細節(jié),需要時把一些細節(jié)列出成表,供用時查閱。希望讀者在學習時多理解,勿死記,以把主要精力放在基本概念和基本方法上。要深入了解和掌握面向?qū)ο蟪绦蛟O計的概念和方法,是一個學習實踐再學習再實踐的過程,不可能一蹴而就。在初學階段,要引導讀者初步理解面向?qū)ο蟮母拍睿⒂珊喌椒钡貙W會編寫C 程序。奠定了C 編程的初步基礎,以后再進一步提高。這樣的方法可能符合大多數(shù)學習者的情況,降低了學習難度。3. 概念清晰,深入淺出,化難難點,容易學習C 不容易學,也不容易教。作者在寫作過程中花了很大的精力考慮怎樣使讀者接受和理解。作者一貫認為:教材編著者應當與讀者將心比心,換位思考,要站在讀者的角度思考和提出問題,幫助他們解除學習中的困難。要善于把復雜的問題簡單化,而不應當把簡單的問題復雜化,要善于化解難點,深入淺出。作者著力使讀者對于面向?qū)ο蟮姆椒ê虲 的特點有清晰、準確和全面的認識。有一些面向?qū)ο蟮母拍,名詞很抽象,理論很難懂,有的初學者會被唬住,感到高深莫測。作者用通俗易懂的方法和語言敘述清楚復雜的概念,化解學習中的困難。讀者可以看到,在本書中,幾乎對每一個新出現(xiàn)的概念,都會用日常生活中的例子加以通俗地說明,一看就懂,很容易理解和入門。希望讀者不要被一大堆高深莫測的名詞術(shù)語嚇住,有些問題看起來很深奧,其實換一個角度去解釋就很容易理解,一個通俗的例子就把問題說清楚了。C 的名詞術(shù)語很多,一般C 的教材的章節(jié)標題都是一些陌生的、深奧莫測的專業(yè)詞匯,往往使人摸不著頭腦,不知道要學的是什么,難以引發(fā)學習的興趣和欲望。作者經(jīng)過反復思考,改變了標題的寫法,不是簡單地列出一個名詞術(shù)語,而是著重說明它是解決什么問題的。例如,原來有一節(jié)的標題是帶參的構(gòu)造函數(shù),這次作者把它改為用帶參的構(gòu)造函數(shù)對不同對象進行初始化,讀者從標題就可以知道帶參的構(gòu)造函數(shù)是為了對象初始化的,從前一節(jié)到下一節(jié),前后連貫,承上啟下,讀者就會想看看究竟是怎樣處理的。又如,有一節(jié)的標題是友元,讀者第一次聽到這個術(shù)語,往往不知所云,這次作者把標題改為可以訪問私有數(shù)據(jù)的朋友,通俗易懂,具有目的性和啟發(fā)性,使讀者想去了解和學習。學習的過程不應該是教師講什么,學生學什么的被動式學習,應當形成學生主動思考問題、主動學習的局面。在各章的敘述中,本書不是先給出一個新概念或新術(shù)語,再去解釋它,而是先提出需要解決的問題,然后討論用什么方法去處理它,從而引出新的概念和新的方法。傳統(tǒng)的教學三部曲是:提出概念解釋概念舉例說明,作者在多年的計算機教學實踐中,采用了新的教學三部曲:提出問題分析和解決問題歸納分析。 在引入每個程序時,都按照以下幾個步驟展開:提出問題編寫程序運行結(jié)果程序分析。由淺入深,逐步展開。不是先理論后實際,先抽象后具體,先一般后個別,而是從具體到抽象,從實際到理論,從個別到一般,從零散到系統(tǒng)。這樣做,符合初學者的認知規(guī)律。4. 教學過程要采取容易入門,逐步提高的方法(1) 精心選擇例子。教材中的例題是基礎性質(zhì)的,是為了幫助讀者更好地理解某一方面的教學內(nèi)容而專門編寫的,相對簡單,容易理解。作者認為,在初學階段的例題不宜太復雜,更不宜把一些比較復雜的實際應用的程序直接搬到課堂當作例題。一個實用的C 程序需要考慮許多因素,綜合各部分知識,有許多注釋行,而且一般是多文件的程序包,讀懂這類大型程序往往需要一定的經(jīng)驗。作為教學程序要對問題進行簡化,盡量壓縮不必要的語句。本書中的例題的選擇原則是:①通過例題能更深入地理解有關的概念和編程方法。②篇幅一般不太長,絕大多數(shù)讀者能獨立讀懂程序。③通過程序舉例使讀者掌握編程的方法和技巧。(2) 在初步掌握C 編程方法后,后續(xù)階段學習的例題程序會逐漸復雜一些。各章例題的難度是循序漸進的,每一個臺階都不大,讀者能在原來的基礎上逐步提高。(3) C 面向?qū)ο蟪绦蛟O計的概念較多,語法復雜。有的讀者往往把精力放在弄清楚一個個具體問題上,而在學完一章后對全章的內(nèi)容缺乏整體的概念。建議讀者對于教材每一章的內(nèi)容至少認真讀兩遍,第一遍弄清楚各個部分的內(nèi)容,不留死角。然后在學完全章后再從頭到尾認真看一遍,把各個知識點串成一條線,建立一個整體的概念,知道本章講了什么,重點在哪里,難點在哪里,在編程中怎樣使用它們。在開始學習時是化整為零,各個擊破,然后再化零為整,形成整體的認識。這樣做的讀者都會有很大收獲。(4) 不要滿足于能看懂例題程序,而應當在學完每一章后自己獨立編寫比例題難度大一點的程序。在各章最后的習題中,有些題的難度比教材中的例題稍大一些,希望教師能從中選擇一些指定學生完成,并通過上機實踐,進一步掌握C 的調(diào)試與運行的方法。(5) 在學完本教材各章后,最好學習一些綜合的程序?qū)嵗,以鞏固收獲,提高編程能力。本書的參考用書《C 程序設計實踐指導》,提供了約50個實用或接近實用的程序,教師可以從中選擇一些在課堂講授,或者指定學生自己閱讀參考。(6) 本書便于自學,即使沒有老師講解,讀者也能看懂本書的大部分內(nèi)容。老師可以要求學生先自學,然后在課堂上選擇重點內(nèi)容講授。有些語法中的具體的規(guī)定可以不必講授,由學生自學。5. C 教材應當體現(xiàn)C 標準C 是從C語言發(fā)展而來的。多數(shù)編譯器同時兼容C語言與C 。C 中有很多語法是繼承了C語言的(當然也有不少改進)。熟悉C語言編程的人往往會沿用某些C語言的傳統(tǒng)用法,例如,頭文件帶后綴.h;使用系統(tǒng)庫時不使用命名空間;早期的C語言允許主函數(shù)為void類型、主函數(shù)可以無返回值等。但是,ANSI C 標準在一些方面有新的規(guī)定。例如,要求主函數(shù)為int類型,如果程序正常執(zhí)行,則返回0值;系統(tǒng)頭文件不帶后綴.h;使用系統(tǒng)庫時使用命名空間std;增加了字符串類型string等。雖然C 編譯器仍然允許使用從C語言繼承來的一些傳統(tǒng)用法,但作者認為,作為教材,應當提倡C 的標準用法。引導讀者從一開始就按照C 標準編寫程序,養(yǎng)成C 的編程習慣和風格。本書各章都是依據(jù)C 標準介紹的,同時也說明允許使用的C語言的傳統(tǒng)用法。在本書中,程序的形式大致如下:#include//頭文件不帶后綴.h#include//包含string頭文件,以便程序中使用字符串變量using namespace std;//使用系統(tǒng)庫時使用命名空間stdint main() //主函數(shù)為int類型{string str; //可以定義字符串變量str…return 0; //程序正常執(zhí)行則返回0}6. 提供配套的教學資源,滿足教學需要考慮不同學校、不同專業(yè)、不同讀者對學習C 有不同的要求,我們提供了配套的教學資源,供選用。除了主教材外,推薦使用以下兩本教學參考書:(1) 《C 面向?qū)ο蟪绦蛟O計(第4版)學習輔導》,譚浩強編著,清華大學出版社出版。該書提供主教材各章中的全部習題的解答。由于教材篇幅有限,有些很好的例子無法在教材中列出,因此把它們作為習題,希望讀者自己完成,教師也可以從中選擇一些習題作為例題講授。學生除了完成教師指定的習題外,最好把習題解答中的程序看一遍,以更好地理解C 程序,擴大眼界,啟迪思路,豐富知識,增長能力。程序設計是一門實踐性很強的課程,只靠聽課和看書是學不好的。衡量學習好壞的標準不是懂不懂,而是會不會干。因此必須強調(diào)多編程,多上機實踐。在《C 面向?qū)ο蟪绦蛟O計(第4版)學習輔導》中,還介紹了運行C 程序的方法。此外,書中還給出上機實踐任務,要求學生完成若干上機實踐。(2) 《C 程序設計實踐指導》,陳清華、朱紅編著,清華大學出版社出版。該書提供了50多個具有實用價值的C 應用程序。這是為學習教材后進一步深入學習的讀者準備的,目的是提高編程能力。該書內(nèi)容包括: 怎樣編寫C 應用程序;提供若干不同規(guī)模的實際的C 應用程序供分析閱讀;安排并指導學生完成1~2個C 應用程序。經(jīng)過這樣的訓練,學生的實際能力將會有較大的提高。此外,本書還提供教材中全部例題的源程序,以便于教師上機和講授,也便于學生在此基礎上調(diào)試和修改程序,需要者可在清華大學出版社官網(wǎng)下載。同時,還向使用本書的教師免費提供講課的電子演示文稿(PPT的素材),以節(jié)省教師的備課時間。本書由譚浩強教授編寫,譚亦峰也參加了部分編寫工作。全國高等院校計算機基礎教育研究會和浩強工作室的各位專家以及全國各高校老師多年來對作者始終給予了熱情的支持和鼓勵。清華大學出版社對本書的出版十分重視并作了周到的安排,使本書得以在短時間內(nèi)出版。對于曾經(jīng)鼓勵、支持和幫助過我的朋友,謹表示真摯的謝意。本書肯定會有不妥之處,誠盼專家和廣大讀者不吝指正。
謹識2023年9月于清華園
第1章C11.1從C到C 11.2最簡單的C 程序21.3C 對C的擴充81.3.1C 的輸入輸出81.3.2用const定義常變量111.3.3函數(shù)原型聲明111.3.4函數(shù)的重載121.3.5函數(shù)模板141.3.6有默認參數(shù)的函數(shù)161.3.7變量的引用171.3.8內(nèi)置函數(shù)241.3.9作用域運算符251.3.10字符串變量261.3.11動態(tài)分配/撤銷內(nèi)存的運算符new和delete291.3.12C 對C功能擴展的小結(jié)311.4C 程序的編寫和實現(xiàn)311.5關于C 上機實踐33習題33第2章類和對象的特性372.1面向?qū)ο蟪绦蛟O計方法概述372.1.1什么是面向?qū)ο蟮某绦蛟O計372.1.2面向?qū)ο蟪绦蛟O計的特點412.1.3類和對象的作用422.1.4面向?qū)ο蟮能浖_發(fā)432.2類的聲明和對象的定義442.2.1類和對象的關系442.2.2聲明類的類型452.2.3定義對象的方法472.2.4類和結(jié)構(gòu)體類型的異同482.3類的成員函數(shù)492.3.1成員函數(shù)的性質(zhì)492.3.2在類外定義成員函數(shù)502.3.3內(nèi)置成員函數(shù)(inline成員函數(shù))512.3.4成員函數(shù)的存儲方式522.4怎樣訪問對象的成員542.4.1通過對象名和成員運算符訪問對象中的成員542.4.2通過指向?qū)ο蟮闹羔樤L問對象中的成員552.4.3通過對象的引用來訪問對象中的成員552.5類和對象的簡單應用舉例552.6類的封裝性和信息隱蔽642.6.1公用接口與私有實現(xiàn)的分離642.6.2類聲明和成員函數(shù)定義的分離652.6.3面向?qū)ο蟪绦蛟O計中的幾個名詞68習題68第3章怎樣使用類和對象713.1類對象的初始化713.1.1需要對類對象進行初始化713.1.2用構(gòu)造函數(shù)實現(xiàn)數(shù)據(jù)成員的初始化723.1.3用帶參數(shù)的構(gòu)造函數(shù)對不同對象初始化743.1.4在構(gòu)造函數(shù)中用參數(shù)初始化表對數(shù)據(jù)成員初始化763.1.5可以對構(gòu)造函數(shù)進行重載773.1.6構(gòu)造函數(shù)可以使用默認參數(shù)793.1.7用構(gòu)造函數(shù)實現(xiàn)初始化方法的歸納823.1.8利用析構(gòu)函數(shù)進行清理工作833.1.9調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序853.2對象數(shù)組873.3對象指針893.3.1指向?qū)ο蟮闹羔?93.3.2指向?qū)ο蟪蓡T的指針903.3.3指向當前對象的this指針933.4共用數(shù)據(jù)的保護943.4.1定義常對象953.4.2定義常對象成員963.4.3指向?qū)ο蟮某V羔?73.4.4指向常對象的指針變量983.4.5對象的常引用1013.4.6const型數(shù)據(jù)的小結(jié)1023.5對象的動態(tài)建立和釋放1023.6對象的賦值和復制1043.6.1對象的賦值1043.6.2對象的復制1053.7不同對象間實現(xiàn)數(shù)據(jù)共享1083.7.1把數(shù)據(jù)成員定義為靜態(tài)1083.7.2用靜態(tài)成員函數(shù)訪問靜態(tài)數(shù)據(jù)成員1103.8允許訪問私有數(shù)據(jù)的朋友1133.8.1可以訪問私有數(shù)據(jù)的友元函數(shù)1133.8.2可以訪問私有數(shù)據(jù)的友元類1173.9類模板118習題122第4章對運算符進行重載1264.1為什么要對運算符重載1264.2對運算符重載的方法1284.3重載運算符的規(guī)則1314.4運算符重載函數(shù)作為類成員函數(shù)和友元函數(shù)1334.5重載雙目運算符1364.6重載單目運算符1414.7重載流插入運算符和流提取運算符1434.7.1重載流插入運算符<<1444.7.2重載流提取運算符>>1464.8有關運算符重載的歸納1484.9不同類型數(shù)據(jù)間的轉(zhuǎn)換1494.9.1標準類型數(shù)據(jù)間的轉(zhuǎn)換1494.9.2把其他類型數(shù)據(jù)轉(zhuǎn)換為類對象用轉(zhuǎn)換構(gòu)造函數(shù)1504.9.3將類對象轉(zhuǎn)換為其他類型數(shù)據(jù)用類型轉(zhuǎn)換函數(shù)151習題157第5章類的繼承1585.1繼承與派生1585.2派生類的聲明方式1615.3派生類的構(gòu)成1615.4派生類成員的訪問屬性1635.4.1公用繼承1645.4.2私有繼承1665.4.3保護成員和保護繼承1695.4.4多級派生時的訪問屬性1735.5派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)1745.5.1簡單的派生類的構(gòu)造函數(shù)1755.5.2有子對象的派生類的構(gòu)造函數(shù)1785.5.3多層派生時的構(gòu)造函數(shù)1815.5.4派生類構(gòu)造函數(shù)的特殊形式1835.5.5派生類的析構(gòu)函數(shù)1845.6多重繼承1845.6.1聲明多重繼承的方法1855.6.2多重繼承派生類的構(gòu)造函數(shù)1855.6.3多重繼承引起的二義性問題1885.6.4在繼承間接共同基類時減少數(shù)據(jù)冗余用虛基類1915.7基類與派生類的轉(zhuǎn)換1965.8繼承與組合1995.9繼承在軟件開發(fā)中的重要意義201習題202第6章C 的多態(tài)性2076.1什么是多態(tài)性2076.2一個典型的例子2086.3利用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性2146.3.1虛函數(shù)的作用2146.3.2靜態(tài)關聯(lián)與動態(tài)關聯(lián)2186.3.3在什么情況下應當聲明虛函數(shù)2196.3.4虛析構(gòu)函數(shù)2206.4純虛函數(shù)與抽象類2216.4.1沒有函數(shù)體的純虛函數(shù)2216.4.2不能用來定義對象的類抽象類2226.4.3應用實例223習題229第7章輸入輸出流2307.1C 的輸入和輸出2307.1.1輸入輸出的含義2307.1.2C 的I/O對C的發(fā)展類型安全和可擴展性2307.1.3C 的輸入輸出流2317.2標準輸出流2367.2.1cout,cerr和clog流2367.2.2標準類型數(shù)據(jù)的格式輸出2387.2.3用流成員函數(shù)put輸出字符2437.3標準輸入流2447.3.1cin流2447.3.2用于字符輸入的流成員函數(shù)2467.3.3istream類的其他成員函數(shù)2507.4對數(shù)據(jù)文件的操作與文件流2537.4.1文件的概念2537.4.2文件流類與文件流對象2557.4.3文件的打開與關閉2557.4.4對ASCII文件的操作2587.4.5對二進制文件的操作2637.5字符串流268習題273第8章善于使用C2748.1對出現(xiàn)異常情況的處理2748.1.1異常處理的任務2748.1.2異常處理的方法2758.1.3在函數(shù)聲明中進行異常情況指定2828.1.4在異常處理中處理析構(gòu)函數(shù)2838.2用命名空間避免同名沖突2858.2.1同名沖突2858.2.2什么是命名空間2888.2.3使用命名空間解決名字沖突2908.2.4使用命名空間中的成員的方法2928.2.5使用無名的命名空間2948.2.6使用標準命名空間std2958.3使用早期的函數(shù)庫296習題297附錄A常用字符與ASCII碼對照表299附錄B運算符與結(jié)合性300參考文獻302