關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
程序設(shè)計(jì)教程
本書(shū)以C++為編程語(yǔ)言,介紹程序設(shè)計(jì)的基本思想、方法和技術(shù)。本書(shū)內(nèi)容圍繞程序設(shè)計(jì)的基礎(chǔ)知識(shí)、過(guò)程式和面向?qū)ο蟪绦蛟O(shè)計(jì)基本內(nèi)容進(jìn)行展開(kāi),主要包括:計(jì)算機(jī)基礎(chǔ)知識(shí)、基本數(shù)據(jù)類(lèi)型、常量、變量、操作符、表達(dá)式、流程控制、結(jié)構(gòu)化程序設(shè)計(jì)、過(guò)程抽象、遞歸函數(shù)、復(fù)雜數(shù)據(jù)類(lèi)型(數(shù)組、結(jié)構(gòu)等)、數(shù)據(jù)抽象、繼承、類(lèi)屬類(lèi)型(STL)、輸入/輸出、異常處理以及事件驅(qū)動(dòng)和基于MFC“文檔-視”結(jié)構(gòu)的面向?qū)ο蟮腤indows應(yīng)用程序框架等。
自本教材的第2版出版以來(lái),根據(jù)我們的教學(xué)實(shí)踐以及廣大讀者的反饋意見(jiàn),我們發(fā)現(xiàn)教材還存在一些不盡如人意的地方,現(xiàn)予以修訂。
教材第3版的變動(dòng)主要體現(xiàn)在以下幾個(gè)方面: 1.重新組織和調(diào)整了一些章節(jié)的內(nèi)容,使得教材內(nèi)容安排更加合理,并進(jìn)一步突出教材對(duì)主流程序設(shè)計(jì)思想、概念和技術(shù)的介紹。例如:把對(duì)整數(shù)的補(bǔ)碼表示以及實(shí)數(shù)的浮點(diǎn)表示的描述集中放入1.1.3 節(jié)“機(jī)內(nèi)信息表示”中介紹;把基于斷言的程序調(diào)試從第4章“過(guò)程抽象—函數(shù)”移至第10章“異常處理”中介紹;在第5章“復(fù)合數(shù)據(jù)的描述—構(gòu)造數(shù)據(jù)類(lèi)型”的子標(biāo)題中顯式指出每種類(lèi)型的作用;把“操作符重載”從單獨(dú)的一章(第2版的第7章)變成一節(jié)(6.6.5節(jié))放入6.6節(jié)的“對(duì)象與類(lèi)的進(jìn)一步討論”中;把C++的編譯預(yù)處理命令(包括條件編譯)、常用標(biāo)準(zhǔn)函數(shù)和STL算法以及MFC常用類(lèi)的介紹放到附錄中;圍繞“消息驅(qū)動(dòng)”和“文檔-視”軟件結(jié)構(gòu)重新組織了第11章對(duì)基于MFC的面向?qū)ο蟪绦蛟O(shè)計(jì)的介紹;等等。 2.針對(duì)C++新的國(guó)際標(biāo)準(zhǔn)(C++11),增加一些對(duì)程序設(shè)計(jì)有良好支持的C++內(nèi)容。例如:增加了對(duì)λ表達(dá)式的介紹,包括λ表達(dá)式的定義(4.6.4節(jié)“匿名函數(shù)—λ表達(dá)式”)、實(shí)現(xiàn)(6.6.5節(jié)中的“函數(shù)調(diào)用操作符重載”)以及應(yīng)用(5.5.6節(jié)“函數(shù)指針”和8.3節(jié)“C++標(biāo)準(zhǔn)模板庫(kù)”),通過(guò)λ表達(dá)式可以實(shí)現(xiàn)匿名函數(shù),它把函數(shù)定義和使用合二為一,以提高程序中“臨時(shí)用一下”的小函數(shù)的靈活性;增加了對(duì)轉(zhuǎn)移構(gòu)造函數(shù)(6.6.4節(jié)“對(duì)象拷貝構(gòu)造過(guò)程的優(yōu)化—轉(zhuǎn)移構(gòu)造函數(shù)”)和轉(zhuǎn)移賦值操作符重載函數(shù)(6.6.5節(jié))的介紹,它們基于“右值引用”參數(shù)類(lèi)型實(shí)現(xiàn)把資源從即將消亡的對(duì)象轉(zhuǎn)移(而不是復(fù)制)到新創(chuàng)建的或已有的對(duì)象中,從而提高程序效率;等等。 3.針對(duì)初學(xué)者,尤其是自學(xué)者,對(duì)一些內(nèi)容的描述進(jìn)行了完善,并對(duì)全書(shū)的語(yǔ)言文字和邏輯進(jìn)行了優(yōu)化,使得教材更加便于閱讀;對(duì)教材例子中的程序代碼增加了注釋?zhuān)沟盟鼈兏尤菀桌斫。另外,盡量減少了在前面出現(xiàn)而在后面才會(huì)詳細(xì)介紹的概念,以避免給初學(xué)者帶來(lái)困擾。對(duì)于必須提前出現(xiàn)的概念以“將在……節(jié)……中介紹”的引用形式給出,而在后面用到前面介紹的內(nèi)容時(shí),將采用“參見(jiàn)……節(jié)的……”的引用形式。 4.補(bǔ)充了一些習(xí)題,使得讀者能更好地理解和掌握核心內(nèi)容,并有針對(duì)性地進(jìn)行程序設(shè)計(jì)訓(xùn)練。 5.修正了教材第2版中的一些錯(cuò)誤。 本書(shū)修訂過(guò)程中得到了很多人的幫助,在第3版出版之際向他們表示感謝。特別感謝劉奇志老師和黃書(shū)劍老師,他們?cè)谂c作者一起承擔(dān)程序設(shè)計(jì)課程的教學(xué)過(guò)程中發(fā)現(xiàn)了本教材的一些問(wèn)題,并對(duì)本教材的修訂提出了很多很好的建議,作者獲益良多。另外,還要感謝策劃編輯朱劼對(duì)我們的鼓勵(lì)與鞭策,并為教材編寫(xiě)出謀劃策。 作者于南京大學(xué)2015年2月第2版前言本書(shū)第1版自2004年出版以來(lái),得到了廣大讀者的熱情關(guān)注和支持,很多讀者還提出了寶貴的建議,我們深表感謝。 在近幾年的教學(xué)中,我們也發(fā)現(xiàn)了本書(shū)的一些不足之處。首先,編寫(xiě)該教材的初衷是介紹程序設(shè)計(jì)的基本思想、概念和技術(shù),C++語(yǔ)言是作為編程實(shí)現(xiàn)語(yǔ)言的角色出現(xiàn),然而,在教材某些內(nèi)容的表述上違背了這個(gè)初衷,教材的一些地方出現(xiàn)了C++語(yǔ)言“喧賓奪主”的情況。其次,教材在一些內(nèi)容的表達(dá)上過(guò)于“精煉”,使初學(xué)者有“看天書(shū)”的感覺(jué)。再次,教材對(duì)現(xiàn)在比較流行的C++標(biāo)準(zhǔn)模板庫(kù)(STL)以及它所支持的泛型程序設(shè)計(jì)沒(méi)有給出足夠的介紹,從而給讀者學(xué)習(xí)使用STL帶來(lái)了困難。此外,教材中還存在少量的錯(cuò)誤。 針對(duì)上述問(wèn)題,我們對(duì)教材進(jìn)行了修訂。第2版的變動(dòng)主要體現(xiàn)在以下幾個(gè)方面: 1)重新組織了一些章節(jié)的內(nèi)容,并調(diào)整了相應(yīng)章節(jié)(主要是節(jié))的標(biāo)題和次序,進(jìn)一步突出了程序設(shè)計(jì)的主流思想、概念和技術(shù)。 2)對(duì)教材的文字進(jìn)行了潤(rùn)色,補(bǔ)充了例子,并為例子中的程序代碼增加了注釋?zhuān)怪尤菀桌斫狻?br /> 3)補(bǔ)充了對(duì)STL的介紹,包括一些常用的容器和算法以及它們的使用實(shí)例,有利于讀者更好地進(jìn)行泛型程序設(shè)計(jì)。 4)增加了對(duì)計(jì)算機(jī)內(nèi)部信息表示的介紹,使得讀者能更好地理解程序設(shè)計(jì)中涉及的二進(jìn)制。 5)補(bǔ)充了一些習(xí)題,使讀者有更多的機(jī)會(huì)進(jìn)行有針對(duì)性的訓(xùn)練。 6)對(duì)一些重要的程序設(shè)計(jì)術(shù)語(yǔ)用不同的字體加以突出的標(biāo)注并給出了它們的英文對(duì)照,突出了對(duì)程序設(shè)計(jì)重要概念的介紹。 7)修正了上一版中的一些錯(cuò)誤。 在教材的修訂過(guò)程中,得到了很多人幫助,在教材第2版出版之際向他們表示感謝,并希望繼續(xù)得到大家的支持,使教材進(jìn)一步得到完善。 作者于南京大學(xué)2009年2月 第1版前言隨著計(jì)算機(jī)應(yīng)用領(lǐng)域的不斷擴(kuò)大、應(yīng)用層次的不斷加深,社會(huì)對(duì)計(jì)算機(jī)軟件的需求急劇增長(zhǎng),這就導(dǎo)致了軟件的規(guī)模不斷擴(kuò)大、復(fù)雜程度不斷提高。如何設(shè)計(jì)出大量的滿(mǎn)足用戶(hù)需求的高質(zhì)量軟件是軟件工作者所面臨的嚴(yán)峻挑戰(zhàn)。 作為計(jì)算機(jī)軟件的主要表現(xiàn)形式—計(jì)算機(jī)程序不同于其他程序(如音樂(lè)會(huì)程序),它是由計(jì)算機(jī)來(lái)執(zhí)行的。這就使得計(jì)算機(jī)程序的編制(程序設(shè)計(jì))不能完全以人的思維模式和習(xí)慣來(lái)進(jìn)行,它往往要受到計(jì)算機(jī)解決問(wèn)題的方式和特點(diǎn)的限制。除此之外,要設(shè)計(jì)出解決各種問(wèn)題的程序,程序設(shè)計(jì)者往往還需要了解與問(wèn)題領(lǐng)域有關(guān)的知識(shí)。這些都給程序設(shè)計(jì)帶來(lái)一定的難度。 從程序設(shè)計(jì)的發(fā)展歷史來(lái)看,程序設(shè)計(jì)經(jīng)歷了從低級(jí)語(yǔ)言到高級(jí)語(yǔ)言、從以編碼為中心到面向軟件生存周期的軟件工程、從過(guò)程式到面向?qū)ο蟮陌l(fā)展過(guò)程。這一過(guò)程體現(xiàn)了人們對(duì)程序設(shè)計(jì)活動(dòng)的不斷認(rèn)識(shí)和改進(jìn)的過(guò)程,特別是從過(guò)程式程序設(shè)計(jì)到面向?qū)ο蟪绦蛟O(shè)計(jì)的發(fā)展,體現(xiàn)了人們對(duì)以自然的方式來(lái)描述和解決問(wèn)題的需求,它使得解題過(guò)程更接近于人的思維方式。 有人認(rèn)為程序設(shè)計(jì)是一門(mén)藝術(shù),而藝術(shù)基于人的靈感和天賦。對(duì)于一些小型程序的設(shè)計(jì)而言,上述的說(shuō)法可能有一些道理。但是,對(duì)于大型、復(fù)雜的程序設(shè)計(jì)問(wèn)題,靈感和天賦是不能很好地解決問(wèn)題的,幾十年的程序設(shè)計(jì)實(shí)踐已證明了這一點(diǎn)。不可否認(rèn),程序設(shè)計(jì)需要靈感和天賦,它們往往在程序的一些局部設(shè)計(jì)上發(fā)揮著作用。但從總體上講,程序設(shè)計(jì)是一門(mén)科學(xué),它是有規(guī)律和步驟可循的。通過(guò)對(duì)程序設(shè)計(jì)的基本思想、概念和技術(shù)的學(xué)習(xí),再加上必要的訓(xùn)練和實(shí)踐,程序設(shè)計(jì)的規(guī)律和步驟是可以掌握的,這正是本書(shū)的主旨所在。本書(shū)強(qiáng)調(diào)準(zhǔn)確的程序設(shè)計(jì)基本概念、良好的程序設(shè)計(jì)風(fēng)格和實(shí)際動(dòng)手能力的訓(xùn)練與培養(yǎng)。 關(guān)于C++語(yǔ)言是否適合作為介紹程序設(shè)計(jì)時(shí)的編程實(shí)現(xiàn)語(yǔ)言,目前存在不同的看法。持反對(duì)意見(jiàn)的人認(rèn)為C++太靈活,以至于會(huì)使初學(xué)者感到無(wú)所適從。本書(shū)之所以選擇C++語(yǔ)言作為實(shí)現(xiàn)語(yǔ)言,首先,因?yàn)镃++語(yǔ)言是一種流行的高級(jí)語(yǔ)言,很多人都在用C++編寫(xiě)實(shí)際的程序;其次,C++支持大部分基本的程序設(shè)計(jì)思想、概念和技術(shù),其中包括對(duì)過(guò)程式及面向?qū)ο髢煞N程序設(shè)計(jì)范型的支持。再次,與其他高級(jí)語(yǔ)言相比,C++語(yǔ)言具有靈活和高效等特點(diǎn),這使得一些程序設(shè)計(jì)思想、概念和技術(shù)能夠更好地實(shí)現(xiàn)。本書(shū)是以介紹基本的程序思想、概念和技術(shù)為主旨,C++服務(wù)于這個(gè)主旨,而不是相反,這樣,初學(xué)者在使用C++時(shí)能夠做到有的放矢。因此,本書(shū)對(duì)C++的一些特殊的、用于解決非主流的程序設(shè)計(jì)問(wèn)題的成分和技巧不予重點(diǎn)介紹。特別地,本書(shū)對(duì)一些屬于C++語(yǔ)言“文化”范疇的內(nèi)容不予過(guò)分強(qiáng)調(diào)。 本書(shū)的內(nèi)容分成兩大部分:第1章至第5章為第一部分,主要對(duì)一些基本的程序設(shè)計(jì)思想、概念和技術(shù)以及過(guò)程式程序設(shè)計(jì)的基本內(nèi)容進(jìn)行介紹,其中包括:數(shù)據(jù)類(lèi)型、表達(dá)式、流程控制、子程序(函數(shù))、遞歸等;第6章至第12章為第二部分,重點(diǎn)介紹面向?qū)ο蟪绦蛟O(shè)計(jì)的基本內(nèi)容,其中包括:類(lèi)/對(duì)象、繼承、操作符重載、類(lèi)屬(模板)、輸入/輸出、異常處理以及面向?qū)ο蟮腤indows應(yīng)用程序基本框架等。 本書(shū)既適合于程序設(shè)計(jì)的初學(xué)者使用,同時(shí),對(duì)具有一些程序設(shè)計(jì)經(jīng)驗(yàn)的人也有一定的參考價(jià)值。本書(shū)可以作為一學(xué)年的程序設(shè)計(jì)課程使用,其中,第一學(xué)期介紹第1章到第5章的全部?jī)?nèi)容以及第10章的部分內(nèi)容;第二學(xué)期介紹第6章到第9章全部?jī)?nèi)容、第10章的部分內(nèi)容以及第11章到12章的全部?jī)?nèi)容。如果讀者已學(xué)過(guò)過(guò)程式程序設(shè)計(jì)(如C語(yǔ)言程序設(shè)計(jì)等)的基本內(nèi)容,則本書(shū)也可作為一學(xué)期的面向?qū)ο蟪绦蛟O(shè)計(jì)課程使用,重點(diǎn)介紹第6章到12章的內(nèi)容。書(shū)中加“*”標(biāo)記的節(jié)在初次閱讀時(shí)可以跳過(guò)。 本書(shū)的編寫(xiě)和完成與很多人的幫助是分不開(kāi)的。首先,要感謝鄭國(guó)梁教授對(duì)本書(shū)編寫(xiě)工作的精心指導(dǎo)。在內(nèi)容的選取、安排、用語(yǔ)的規(guī)范性等方面,鄭老師都事無(wú)巨細(xì)地給予了考慮,并檢查了全文(包括每個(gè)例子程序)。值得一提的是,作者編寫(xiě)本書(shū)所必備的專(zhuān)業(yè)知識(shí)和專(zhuān)業(yè)素質(zhì)是在鄭老師的長(zhǎng)期熏陶下獲得的,這些知識(shí)和素質(zhì)使得作者能夠完成本書(shū)的編寫(xiě)。其次,非常感謝尹存燕老師和戴新宇在本書(shū)習(xí)題的設(shè)計(jì)和文字易讀性方面所做的大量工作;非常感謝孫明欣和周明對(duì)書(shū)中內(nèi)容所做的檢查工作,特別是對(duì)本書(shū)初稿中一些概念上的模糊與謬誤、內(nèi)容安排的合理性與易讀性以及在遵守C++標(biāo)準(zhǔn)規(guī)范方面所提出的建議;感謝胡昊和徐鋒,作者對(duì)一些基本概念的理解是在與他們就相關(guān)問(wèn)題的討論中獲得的。另外,還要感謝機(jī)械工業(yè)出版社的溫莉芳總編輯對(duì)本書(shū)編寫(xiě)工作的鼓勵(lì)和支持。 最后,要感謝我們的家人對(duì)本書(shū)編寫(xiě)工作的理解和支持,本書(shū)的編寫(xiě)占用了大量本應(yīng)與他們共度的家庭歡樂(lè)時(shí)間。感謝所有支持和幫助過(guò)本書(shū)編寫(xiě)工作的人們。 由于作者水平有限,加之時(shí)間倉(cāng)促,錯(cuò)誤和疏漏在所難免,懇請(qǐng)廣大讀者不吝指教,以便于我們?cè)诮窈蟮陌姹局羞M(jìn)行改進(jìn)。
第3版 前言
第2版 前言 第1版 前言 教學(xué)建議 第1章 概述 1.1 計(jì)算機(jī)的工作模型 1.1.1 馮·諾依曼體系結(jié)構(gòu) 1.1.2 硬件與軟件 1.1.3 機(jī)內(nèi)信息表示 1.2 程序設(shè)計(jì) 1.2.1 程序設(shè)計(jì)范式 1.2.2 程序設(shè)計(jì)步驟 1.2.3 程序設(shè)計(jì)語(yǔ)言 1.3 C++語(yǔ)言 1.3.1 概述 1.3.2 C++程序的構(gòu)成 1.3.3 C++語(yǔ)言的詞法 1.3.4 C++程序的運(yùn)行步驟 1.4 小結(jié) 1.5 習(xí)題 第2章 簡(jiǎn)單數(shù)據(jù)的描述-基本數(shù)據(jù)類(lèi)型和表達(dá)式 2.1 概述 2.2 基本數(shù)據(jù)類(lèi)型 2.2.1 整數(shù)類(lèi)型 2.2.2 實(shí)數(shù)類(lèi)型 2.2.3 字符類(lèi)型 2.2.4 邏輯類(lèi)型 2.3 數(shù)據(jù)的表現(xiàn)形式 2.3.1 常量 2.3.2 變量 2.3.3 變量值的輸入 2.4 數(shù)據(jù)的基本運(yùn)算-操作符 2.4.1 操作符概述 2.4.2 算術(shù)操作符 2.4.3 關(guān)系與邏輯操作符 2.4.4 位操作符 2.4.5 賦值操作符 2.4.6 其他操作符 2.4.7 操作數(shù)的類(lèi)型轉(zhuǎn)換 2.5 數(shù)據(jù)基本運(yùn)算的實(shí)現(xiàn)-表達(dá)式 2.5.1 表達(dá)式的構(gòu)成與分類(lèi) 2.5.2 操作符的優(yōu)先級(jí)和結(jié)合性 2.5.3 表達(dá)式中操作數(shù)的類(lèi)型轉(zhuǎn)換 2.5.4 帶副作用操作符的表達(dá)式計(jì)算 2.5.5 表達(dá)式結(jié)果的輸出 2.6 小結(jié) 2.7 習(xí)題 第3章 程序的流程控制(算法)描述-語(yǔ)句 3.1 概述 3.2 順序執(zhí)行 3.2.1 表達(dá)式語(yǔ)句 3.2.2 復(fù)合語(yǔ)句 3.2.3 空語(yǔ)句 3.3 選擇執(zhí)行 3.3.1 if語(yǔ)句 3.3.2 switch語(yǔ)句 3.4 循環(huán)(重復(fù))執(zhí)行 3.4.1 迭代與窮舉 3.4.2 while語(yǔ)句 3.4.3 do-while語(yǔ)句 3.4.4 for語(yǔ)句 3.4.5 計(jì)數(shù)循環(huán)和事件循環(huán) 3.4.6 循環(huán)程序設(shè)計(jì)實(shí)例 3.5 無(wú)條件轉(zhuǎn)移 3.5.1 goto語(yǔ)句 3.5.2 break語(yǔ)句 3.5.3 continue語(yǔ)句 3.6 程序設(shè)計(jì)風(fēng)格 3.6.1 結(jié)構(gòu)化程序設(shè)計(jì) 3.6.2 關(guān)于goto語(yǔ)句 3.7 小結(jié) 3.8 習(xí)題 第4章 過(guò)程抽象-函數(shù) 4.1 概述 4.1.1 功能分解與復(fù)合 4.1.2 子程序及子程序間的數(shù)據(jù)傳遞 4.2 C++函數(shù) 4.2.1 函數(shù)的定義 4.2.2 函數(shù)的調(diào)用 4.2.3 值作為參數(shù)傳遞 4.2.4 局部變量與全局變量 4.2.5 基于函數(shù)的過(guò)程式程序設(shè)計(jì) 4.3 標(biāo)識(shí)符的作用域與變量的生存期 4.3.1 程序的多模塊結(jié)構(gòu) 4.3.2 標(biāo)識(shí)符的作用域 4.3.3 命名空間 4.3.4 變量的生存期(存儲(chǔ)分配) *4.3.5 基于棧的函數(shù)調(diào)用的實(shí)現(xiàn) 4.4 遞歸函數(shù) 4.4.1 什么是遞歸函數(shù) 4.4.2 “分而治之”的程序設(shè)計(jì) 4.4.3 遞歸與循環(huán)的選擇 4.4.4 遞歸函數(shù)應(yīng)用實(shí)例 4.5 標(biāo)準(zhǔn)函數(shù)庫(kù) 4.6 C++函數(shù)的進(jìn)一步討論 4.6.1 內(nèi)聯(lián)函數(shù) 4.6.2 帶默認(rèn)值的形式參數(shù) 4.6.3 函數(shù)名重載 4.6.4 匿名函數(shù)-λ表達(dá)式 4.7 小結(jié) 4.8 習(xí)題 第5章 復(fù)合數(shù)據(jù)的描述-構(gòu)造數(shù)據(jù)類(lèi)型 5.1 枚舉類(lèi)型-自定義值集的數(shù)據(jù)描述 5.1.1 枚舉類(lèi)型的定義 5.1.2 枚舉類(lèi)型的操作 5.2 數(shù)組類(lèi)型-由多個(gè)同類(lèi)型元素構(gòu)成的復(fù)合數(shù)據(jù)描述 5.2.1 一維數(shù)組類(lèi)型-線性復(fù)合數(shù)據(jù)的描述 5.2.2 一維字符數(shù)組-字符串類(lèi)型的一種實(shí)現(xiàn) 5.2.3 二維數(shù)組類(lèi)型-二維復(fù)合數(shù)據(jù)的描述 5.2.4 數(shù)組類(lèi)型的應(yīng)用 5.3 結(jié)構(gòu)類(lèi)型-由若干屬性構(gòu)成的復(fù)合數(shù)據(jù)描述 5.3.1 結(jié)構(gòu)類(lèi)型的定義 5.3.2 結(jié)構(gòu)類(lèi)型的操作 5.3.3 結(jié)構(gòu)類(lèi)型的應(yīng)用 5.4 聯(lián)合類(lèi)型-用一種類(lèi)型表示多種類(lèi)型的數(shù)據(jù) 5.4.1 聯(lián)合類(lèi)型的定義與操作 5.4.2 聯(lián)合類(lèi)型的應(yīng)用 5.5 指針類(lèi)型-內(nèi)存地址的描述 5.5.1 指針類(lèi)型的定義 5.5.2 指針類(lèi)型的基本操作 5.5.3 指針作為參數(shù)類(lèi)型 5.5.4 指針與動(dòng)態(tài)變量 5.5.5 指針與數(shù)組 5.5.6 函數(shù)指針 *5.5.7 多級(jí)指針 5.6 引用類(lèi)型-變量的別名 5.6.1 引用類(lèi)型的定義 5.6.2 引用作為參數(shù)類(lèi)型 5.7 小結(jié) 5.8 習(xí)題 第6章 數(shù)據(jù)抽象-對(duì)象與類(lèi) 6.1 概述 6.1.1 數(shù)據(jù)抽象與封裝 6.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì) *6.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)與過(guò)程式程序設(shè)計(jì)的對(duì)比 6.2 類(lèi) 6.2.1 數(shù)據(jù)成員 6.2.2 成員函數(shù) 6.2.3 成員的訪問(wèn)控制-信息隱藏 6.3 對(duì)象 6.3.1 對(duì)象的創(chuàng)建 6.3.2 對(duì)象的操作 6.3.3 this指針 6.4 對(duì)象的初始化和消亡前處理 6.4.1 構(gòu)造函數(shù) 6.4.2 析構(gòu)函數(shù) 6.4.3 成員對(duì)象的初始化 6.4.4 拷貝構(gòu)造函數(shù) 6.5 類(lèi)作為模塊 6.5.1 類(lèi)模塊的組成 *6.5.2 Demeter法則 6.6 對(duì)象與類(lèi)的進(jìn)一步討論 6.6.1 對(duì)常量對(duì)象的訪問(wèn)-常(const)成員函數(shù) 6.6.2 同類(lèi)對(duì)象之間的數(shù)據(jù)共享-靜態(tài)(static)數(shù)據(jù)成員 6.6.3 提高對(duì)象私有數(shù)據(jù)成員的訪問(wèn)效率-友元(friend) 6.6.4 對(duì)象拷貝構(gòu)造過(guò)程的優(yōu)化-轉(zhuǎn)移構(gòu)造函數(shù) 6.6.5 操作符重載 6.7 小結(jié) 6.8 習(xí)題 第7章 繼承(類(lèi)的復(fù)用)-派生類(lèi) 7.1 概述 7.1.1 類(lèi)之間的繼承關(guān)系-基類(lèi)與派生類(lèi) 7.1.2 繼承的作用 7.2 單繼承 7.2.1 單繼承派生類(lèi)的定義 7.2.2 在派生類(lèi)中訪問(wèn)基類(lèi)成員-protected訪問(wèn)控制 7.2.3 派生類(lèi)對(duì)基類(lèi)成員的訪問(wèn)控制-繼承方式 7.2.4 派生類(lèi)對(duì)象的初始化和賦值操作 7.2.5 單繼承的應(yīng)用實(shí)例 7.2.6 類(lèi)之間的聚集關(guān)系 7.3 消息(成員函數(shù)調(diào)用)的動(dòng)態(tài)綁定 7.3.1 消息的多態(tài)性 7.3.2 虛函數(shù)與消息的動(dòng)態(tài)綁定 7.3.3 純虛函數(shù)和抽象類(lèi) *7.3.4 虛函數(shù)動(dòng)態(tài)綁定的一種實(shí)現(xiàn) 7.4 多繼承 7.4.1 多繼承的必要性 7.4.2 多繼承派生類(lèi)的定義 7.4.3 命名沖突 7.4.4 重復(fù)繼承-虛基類(lèi) 7.5 小結(jié) 7.6 習(xí)題 第8章 類(lèi)屬類(lèi)型(泛型)-模板 8.1 概述 8.2 模板 8.2.1 函數(shù)模板 8.2.2 類(lèi)模板 8.2.3 模板的復(fù)用 8.3 C++標(biāo)準(zhǔn)模板庫(kù) 8.3.1 概述 8.3.2 容器 8.3.3 迭代器 8.3.4 算法 8.4 小結(jié) 8.5 習(xí)題 第9章 輸入/輸出 9.1 概述 9.2 面向控制臺(tái)的輸入/輸出 9.2.1 基于函數(shù)庫(kù)的控制臺(tái)I/O 9.2.2 基于類(lèi)庫(kù)的控制臺(tái)I/O 9.2.3 抽取/插入操作符“>>”和“<<”的重載 9.3 面向文件的輸入/輸出 9.3.1 文件概述 9.3.2 基于函數(shù)庫(kù)的文件I/O 9.3.3 基于類(lèi)庫(kù)的文件I/O 9.4 面向字符串變量的輸入/輸出 9.5 小結(jié) 9.6 習(xí)題 第10章 異常處理 10.1 概述 10.1.1 什么是異常 10.1.2 異常處理的基本手段 10.2 C++異常處理機(jī)制 10.2.1 try、throw以及catch語(yǔ)句 10.2.2 異常的嵌套處理 10.3 基于斷言的程序調(diào)試 10.4 小結(jié) 10.5 習(xí)題 第11章 Windows應(yīng)用程序設(shè)計(jì) 11.1 Windows應(yīng)用程序的基本結(jié)構(gòu) 11.1.1 Windows應(yīng)用程序簡(jiǎn)介 11.1.2 消息驅(qū)動(dòng)的程序結(jié)構(gòu) 11.2 面向?qū)ο蟮腤indows應(yīng)用程序結(jié)構(gòu) 11.2.1 Windows應(yīng)用程序中的對(duì)象 11.2.2 微軟基礎(chǔ)類(lèi)庫(kù)(MFC) 11.2.3 基于MFC“文檔-視”結(jié)構(gòu)的應(yīng)用框架 11.3 小結(jié) 11.4 習(xí)題 附錄A ASCII字符集及其編碼 附錄B IEEE浮點(diǎn)數(shù)的內(nèi)部表示 附錄C C++標(biāo)準(zhǔn)函數(shù)庫(kù)中的常用函數(shù) 附錄D C++編譯預(yù)處理命令 附錄E C++標(biāo)準(zhǔn)模板庫(kù)(STL)常用功能 附錄F MFC一些常用類(lèi)的功能 參考文獻(xiàn)
你還可能感興趣
我要評(píng)論
|