本書(shū)介紹了面向?qū)ο蟪绦蛟O(shè)計(jì)思想及其在C 語(yǔ)言中的實(shí)現(xiàn)方式。本書(shū)采用啟發(fā)式的敘述方法展現(xiàn)面向?qū)ο蟪绦蛟O(shè)計(jì)的相關(guān)知識(shí),語(yǔ)言通俗易懂; 根據(jù)封裝、繼承、多態(tài)的順序編排主要內(nèi)容,根據(jù)學(xué)習(xí)規(guī)律和要求穿插相關(guān)內(nèi)容; 邏輯清楚,內(nèi)容全面,注重運(yùn)用; 示例嚴(yán)謹(jǐn)連貫、循序漸進(jìn)、豐富生動(dòng); 在Visual C 2015中調(diào)試運(yùn)行,并配有大量習(xí)題。全書(shū)共9章,分別為面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)介、從C語(yǔ)言到C 語(yǔ)言、類(lèi)與對(duì)象、運(yùn)算符重載、流類(lèi)庫(kù)與輸入輸出、繼承、虛函數(shù)和多態(tài)、模板與STL、異常處理。本書(shū)能幫助讀者快速地建立面向?qū)ο蟪绦蛟O(shè)計(jì)的思維方式,獲得使用C 語(yǔ)言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的能力。 本書(shū)為有C語(yǔ)言基礎(chǔ)、希望通過(guò)C 語(yǔ)言進(jìn)一步學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的讀者編寫(xiě),適合作為高等院校計(jì)算機(jī)類(lèi)、信息管理類(lèi)及電子信息類(lèi)等相關(guān)專(zhuān)業(yè)的教材,也可供自學(xué)者使用。
(1)啟發(fā)式的敘述方式,語(yǔ)言通俗易懂,示例嚴(yán)謹(jǐn)連貫,內(nèi)容完整全面。
(2)設(shè)計(jì)必要場(chǎng)景、逐步完善示例,培養(yǎng)學(xué)習(xí)者設(shè)計(jì)和完整封裝類(lèi)的能力。
(3)強(qiáng)調(diào)繼承的使用條件,避免使用類(lèi)似虎父犬子的錯(cuò)誤繼承關(guān)系。
(4)完整介紹多態(tài)的使用方法,培養(yǎng)靈活運(yùn)用多態(tài)的思維能力。
(5)將文件內(nèi)容提前,通過(guò)文件練習(xí)理解多態(tài)并充分練習(xí)文件的使用。
(6)舉例豐富,代碼詳盡,提供Visual C 2015和Dev-C 5.11版本的源程序。
隨著計(jì)算機(jī)應(yīng)用水平在廣度和深度上的發(fā)展,要解決的問(wèn)題也越來(lái)越復(fù)雜,程序設(shè)計(jì)范式也隨之不斷發(fā)展。面向?qū)ο蟪绦蛟O(shè)計(jì)更符合人類(lèi)的思維方式,更適合描述復(fù)雜領(lǐng)域中的問(wèn)題。通過(guò)運(yùn)用面向?qū)ο蟪绦蛟O(shè)計(jì)中的封裝、繼承和多態(tài),不僅可提高編程效率,而且可賦予程序很好的可重用性和可擴(kuò)展性,從而大幅度減少軟件的開(kāi)發(fā)和維護(hù)成本,因此面向?qū)ο蟪绦蛟O(shè)計(jì)長(zhǎng)久以來(lái)都是程序設(shè)計(jì)領(lǐng)域的主流技術(shù)。C 語(yǔ)言不僅是一種流行的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,而且對(duì)于深入理解面向?qū)ο蟪绦蛟O(shè)計(jì)思想來(lái)說(shuō)也是一種有較好深度的語(yǔ)言。如果掌握了使用C 語(yǔ)言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的方法,那么學(xué)習(xí)其他面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言也會(huì)容易得多。另外,C語(yǔ)言是計(jì)算機(jī)類(lèi)等專(zhuān)業(yè)的程序設(shè)計(jì)入門(mén)語(yǔ)言,因此,使用能很好兼容C語(yǔ)言的C 語(yǔ)言講解面向?qū)ο蟪绦蛟O(shè)計(jì)思想成為眾多高校教學(xué)計(jì)劃的重要環(huán)節(jié)。
然而,在教學(xué)實(shí)踐中,找到一本合適的教材卻不容易。主要有三個(gè)方面的問(wèn)題: 一是內(nèi)容涵蓋面向過(guò)程程序設(shè)計(jì),只有一半的篇幅與面向?qū)ο蟪绦蛟O(shè)計(jì)有關(guān),性價(jià)比不高; 二是面向?qū)ο蟪绦蛟O(shè)計(jì)的內(nèi)容不夠全面,缺少對(duì)實(shí)踐中的一些重要問(wèn)題的介紹; 三是對(duì)面向?qū)ο笏枷氲倪\(yùn)用不足,忽視對(duì)合理抽象類(lèi)和完整封裝類(lèi)的強(qiáng)化,或類(lèi)似虎父犬子的錯(cuò)誤繼承關(guān)系等問(wèn)題頻現(xiàn)。為此,我們編寫(xiě)了本書(shū),目的是拋磚引玉,希望給學(xué)習(xí)者提供一本清晰、簡(jiǎn)潔、準(zhǔn)確、生動(dòng)、全面的教學(xué)參考書(shū)。本書(shū)中的例子在Visual C 2015中編譯運(yùn)行,同時(shí)在配套資源中提供DevC 5.11版本的源程序。
本書(shū)主要內(nèi)容
本書(shū)為有C語(yǔ)言基礎(chǔ)、希望通過(guò)C 語(yǔ)言進(jìn)一步學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的讀者編寫(xiě),能幫助讀者快速地建立面向?qū)ο蟪绦蛟O(shè)計(jì)的思維方式,獲得使用C 語(yǔ)言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的能力。
本書(shū)共有9章。
第1章是面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)介,主要介紹面向過(guò)程和面向?qū)ο蟮膮^(qū)別,著重介紹面向?qū)ο笾械娜齻(gè)重要概念和面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征。
第2章介紹相對(duì)于C語(yǔ)言來(lái)說(shuō)C 語(yǔ)言的新內(nèi)容,首先是C 語(yǔ)言簡(jiǎn)介、域作用符和名字空間、輸入輸出流簡(jiǎn)介,然后重點(diǎn)介紹C 語(yǔ)言中關(guān)于常量與常變量、類(lèi)型、函數(shù)和動(dòng)態(tài)內(nèi)存分配的新內(nèi)容。
第3章介紹類(lèi)與對(duì)象的相關(guān)內(nèi)容,主要講解類(lèi)的封裝,包括類(lèi)的定義與對(duì)象、類(lèi)中的成員,及對(duì)象的生存期、作用域與可見(jiàn)性,后介紹類(lèi)間的關(guān)系及其在C 語(yǔ)言中的實(shí)現(xiàn),并舉例講解面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝思想,幫助學(xué)習(xí)者建立完整封裝的概念。
第4章介紹運(yùn)算符重載,包括運(yùn)算符重載的一般形式、典型的運(yùn)算符重載和自動(dòng)類(lèi)型轉(zhuǎn)換的內(nèi)容,從而使封裝完整的類(lèi)更好用。
第5章介紹流類(lèi)庫(kù)與輸入輸出,包括C 語(yǔ)言流類(lèi)庫(kù)的結(jié)構(gòu)、標(biāo)準(zhǔn)輸入輸出流、格式控制方法,后介紹文件與文件流,培養(yǎng)學(xué)習(xí)者為完善封裝的類(lèi)提供文件讀寫(xiě)的能力。
第6章介紹繼承,包括繼承的含義、繼承方式、派生類(lèi)中的成員、多繼承與虛基類(lèi),并分析繼承與組合的使用條件,培養(yǎng)學(xué)習(xí)者正確使用繼承關(guān)系的能力。
第7章介紹虛函數(shù)和多態(tài),包括靜態(tài)綁定與動(dòng)態(tài)綁定、虛函數(shù)、構(gòu)造函數(shù)與析構(gòu)函數(shù)、動(dòng)態(tài)類(lèi)型轉(zhuǎn)換、純虛函數(shù)和抽象類(lèi),后通過(guò)應(yīng)用舉例來(lái)分析組合關(guān)系與聚合關(guān)系中如何應(yīng)用多態(tài),并通過(guò)實(shí)現(xiàn)異構(gòu)鏈表和異構(gòu)數(shù)組的文件讀寫(xiě)來(lái)加強(qiáng)學(xué)習(xí)者對(duì)多態(tài)的理解和運(yùn)用的能力。
第8章介紹模板和STL,包括函數(shù)模板和類(lèi)模板,同時(shí)簡(jiǎn)單介紹STL的內(nèi)容和基本的使用方法。
第9章介紹異常處理,包括異常處理的實(shí)現(xiàn)、異常處理中的對(duì)象、異常的多態(tài),同時(shí)簡(jiǎn)單介紹標(biāo)準(zhǔn)庫(kù)中的異常處理。
本書(shū)特色
(1) 啟發(fā)式的敘述方式,語(yǔ)言通俗易懂,示例嚴(yán)謹(jǐn)連貫,內(nèi)容完整全面。
(2) 設(shè)計(jì)必要場(chǎng)景、逐步完善示例,培養(yǎng)學(xué)習(xí)者設(shè)計(jì)和完整封裝類(lèi)的能力。
(3) 強(qiáng)調(diào)繼承的使用條件,避免使用類(lèi)似虎父犬子的錯(cuò)誤繼承關(guān)系。
(4) 完整地介紹多態(tài)的使用方法,培養(yǎng)靈活運(yùn)用多態(tài)的思維能力。
(5) 將文件內(nèi)容提前,通過(guò)文件練習(xí)理解多態(tài)并充分練習(xí)文件的使用。
(6) 實(shí)例豐富,代碼詳盡,提供Visual C 2015和DevC 5.11版本的源程序。
配套資源
為便于教學(xué),本書(shū)配有860分鐘微課視頻、源代碼、教學(xué)課件、教學(xué)大綱、教學(xué)進(jìn)度表、題庫(kù)、考試試卷及參考答案。
(1) 獲取微課視頻方式: 讀者可以先掃描本書(shū)封底的文泉云盤(pán)防盜碼,再掃描書(shū)中相應(yīng)的視頻二維碼,觀看教學(xué)視頻。
(2) 獲取源代碼方式: 先掃描本書(shū)封底的文泉云盤(pán)防盜碼,再掃描下方二維碼,即可獲取。
源代碼
(3) 其他配套資源可以掃描本書(shū)封底的書(shū)圈二維碼下載。
讀者對(duì)象
本書(shū)適合作為高等院校計(jì)算機(jī)類(lèi)、信息管理類(lèi)及電子信息類(lèi)等相關(guān)專(zhuān)業(yè)的教材,也可供自學(xué)者使用。
編寫(xiě)本書(shū)歷經(jīng)十年有余,全書(shū)由董興業(yè)負(fù)責(zé)執(zhí)筆編寫(xiě)初稿,
三位編者篩選了大量的材料,不斷商討取舍。
經(jīng)過(guò)多次內(nèi)部使用,逐漸成熟,因此決心付諸出版。
由于編者水平有限,書(shū)中難免有疏漏之處,懇請(qǐng)讀者批評(píng)指正。
編者
2021年8月
第1章面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)介
1.1面向過(guò)程與面向?qū)ο?/p>
1.2面向?qū)ο笾械娜齻(gè)重要概念
1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征
1.4小結(jié)
1.5習(xí)題
第2章從C語(yǔ)言到C 語(yǔ)言
2.1C 語(yǔ)言簡(jiǎn)介
2.2域作用符和名字空間
2.3輸入輸出流簡(jiǎn)介
2.4常量與常變量
2.4.1常量
2.4.2常變量
2.5類(lèi)型
2.5.1void類(lèi)型
2.5.2數(shù)組
2.5.3結(jié)構(gòu)體
2.6函數(shù)
2.6.1引用傳遞
2.6.2函數(shù)重載
2.6.3默認(rèn)形參值
2.7動(dòng)態(tài)內(nèi)存分配
2.8小結(jié)
2.9習(xí)題
第3章類(lèi)與對(duì)象
3.1類(lèi)的定義與對(duì)象
3.2類(lèi)中的成員
3.2.1構(gòu)造函數(shù)
3.2.2析構(gòu)函數(shù)
3.2.3復(fù)制構(gòu)造函數(shù)
3.2.4賦值運(yùn)算符函數(shù)
3.2.5組合類(lèi)
3.2.6內(nèi)聯(lián)函數(shù)
3.2.7靜態(tài)成員
3.2.8常成員與常對(duì)象
目錄
C 面向?qū)ο蟪绦蛟O(shè)計(jì)(微課視頻版)
3.3對(duì)象的生存期、作用域與可見(jiàn)性
3.4類(lèi)間的關(guān)系及其在C 語(yǔ)言中的實(shí)現(xiàn)
3.4.1關(guān)聯(lián)關(guān)系
3.4.2聚合關(guān)系
3.4.3組合關(guān)系
3.4.4友元類(lèi)與友元函數(shù)
3.5面向?qū)ο蟪绦蛟O(shè)計(jì)舉例
3.6小結(jié)
3.7習(xí)題
第4章運(yùn)算符重載
4.1運(yùn)算符重載的一般形式
4.2典型的運(yùn)算符重載
4.2.1賦值運(yùn)算符
4.2.2下標(biāo)運(yùn)算符
4.2.3函數(shù)調(diào)用運(yùn)算符
4.2.4自增和自減運(yùn)算符
4.3自動(dòng)類(lèi)型轉(zhuǎn)換
4.4小結(jié)
4.5習(xí)題
第5章流類(lèi)庫(kù)與輸入輸出
5.1C 語(yǔ)言流類(lèi)庫(kù)的結(jié)構(gòu)
5.2標(biāo)準(zhǔn)輸入輸出流
5.2.1重載插入符和提取符
5.2.2流的內(nèi)部狀態(tài)和處理方法
5.3格式控制
5.3.1使用成員函數(shù)控制輸出格式
5.3.2使用操縱符控制輸出格式
5.4文件與文件流
5.4.1輸出文件流
5.4.2輸入文件流
5.4.3輸入輸出文件流舉例
5.5小結(jié)
5.6習(xí)題
第6章繼承
6.1繼承的含義
6.2繼承方式
6.3派生類(lèi)中的成員
6.3.1構(gòu)造函數(shù)
6.3.2析構(gòu)函數(shù)
6.3.3復(fù)制構(gòu)造函數(shù)
6.3.4賦值運(yùn)算符函數(shù)
6.4多繼承與虛基類(lèi)
6.5繼承與組合
6.6小結(jié)
6.7習(xí)題
第7章虛函數(shù)和多態(tài)
7.1靜態(tài)綁定與動(dòng)態(tài)綁定
7.2虛函數(shù)
7.3構(gòu)造函數(shù)與析構(gòu)函數(shù)
7.4動(dòng)態(tài)類(lèi)型轉(zhuǎn)換
7.5純虛函數(shù)和抽象類(lèi)
7.6應(yīng)用舉例
7.7小結(jié)
7.8習(xí)題
第8章模板與STL
8.1函數(shù)模板
8.2類(lèi)模板
8.3STL簡(jiǎn)介
8.4小結(jié)
8.5習(xí)題
第9章異常處理
9.1異常處理的實(shí)現(xiàn)
9.1.1異常的捕獲
9.1.2異常接口聲明
9.2異常處理中的對(duì)象
9.3異常的多態(tài)
9.4標(biāo)準(zhǔn)庫(kù)中的異常處理
9.5小結(jié)
9.6習(xí)題
參考文獻(xiàn)