注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)C++高級(jí)編程

C++高級(jí)編程

C++高級(jí)編程

定 價(jià):¥88.00

作 者: (美)Nicholas A.Solter,(美)Scott J.Kleper著;劉鑫,楊健康等譯;劉鑫譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: C++

ISBN: 9787111177784 出版時(shí)間: 2006-01-01 包裝: 膠版紙
開本: 24cm 頁數(shù): 687 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書既系統(tǒng)全面又突出重點(diǎn),作者從C++基礎(chǔ)知識(shí)講起,始終著眼于C++語言的編程實(shí)踐,提供了大量實(shí)踐示例和解決方案,包括如何更好地實(shí)現(xiàn)重用、如何有效地測(cè)試和調(diào)試等C++專業(yè)人員常用的一些技術(shù)與方法,還提供了一些鮮為人知的、能大大簡(jiǎn)化工作的C++語言特性;最后,還配有大量可重用的編碼模式,并在附錄中提供C++面試寶典作為開發(fā)人員的實(shí)用指南。本書面向進(jìn)階C++的初學(xué)者,以及那些想把C++水平提高到專業(yè)水準(zhǔn)的程序員和開發(fā)人員。本書主要內(nèi)容:● 不同的編程方法和高質(zhì)量的編程風(fēng)格● 充分利用C++完成大型軟件開發(fā)的各種方法● 確保無錯(cuò)代碼的方法● 認(rèn)識(shí)面向?qū)ο笤O(shè)計(jì)● 使用庫和模式來提高編程效率、提高編程質(zhì)量的若干方法● C++中管理內(nèi)存的最佳方法● 輸入/輸出技術(shù)

作者簡(jiǎn)介

  NicholasA.Solter現(xiàn)就職于SunMicrosystems公司,曾在斯坦福大學(xué)攻讀計(jì)算機(jī)科學(xué)專業(yè),獲得理學(xué)學(xué)士和理學(xué)碩士學(xué)位。他具有豐富的C/C++編程經(jīng)驗(yàn)和計(jì)算機(jī)游戲開發(fā)經(jīng)歷,并作為助理教授在Fullerton學(xué)院講授過一年C++課程。ScottJ.KleperReactivity公司的高級(jí)軟件工程師。在初中就開始了他的編程生涯,用BASIC為TandyTRS-80編寫過一些冒險(xiǎn)游戲。在斯坦福大學(xué)就讀期間,他擔(dān)任過程序設(shè)計(jì)入門和面向?qū)ο蟪绦蛟O(shè)計(jì)等多門課程的助教;并獲得了計(jì)算機(jī)科學(xué)的理學(xué)學(xué)士和碩士學(xué)位。畢業(yè)后致力于人機(jī)交互領(lǐng)域,擔(dān)任過多家公司開發(fā)小組的首席工程師。

圖書目錄

譯者序
前言
作者簡(jiǎn)介
第一部分專業(yè)C+十程序設(shè)計(jì)概述
第1章C++快速入門.
1.1C++基礎(chǔ)
1.1.1必不可少的"Hello,World"
1.1.2命名空間
1.1.3變量
1.4操作符
1.1.5類型
1.1.6條件語句
1.1.7循環(huán)
1.1.8數(shù)組
1.1.9函數(shù)
1.1.10結(jié)束語
1.2C++進(jìn)階
1.2.1指針和動(dòng)態(tài)內(nèi)存
1.2.2C++中的字符串
1.2.3引用
1.2.4異常
1.2.5const的多重用途
1.3作為一種面向?qū)ο笳Z言的C++
1.4你的第一個(gè)實(shí)用的C十十程序
1.4,1一個(gè)員工記錄系統(tǒng)
1.4.2Employee類
1.4.3Database類
1.4.4用戶界面
1.4.5對(duì)程序的評(píng)價(jià)
1.5小結(jié)
第2章設(shè)計(jì)專業(yè)的C++程序
2.2編程設(shè)計(jì)的重要性
2.3C++設(shè)計(jì)有什么不同之處
2.4C++設(shè)計(jì)的兩個(gè)原則
2.4.1抽象
2.4.2重用
2.5設(shè)計(jì)一個(gè)象棋程序
2.5.1需求
2.5.2設(shè)計(jì)步驟
2.6小結(jié)
第3章基于對(duì)象的設(shè)計(jì)
3.1面向?qū)ο蟮氖澜缬^
3.1.1我是在以過程性思維思考嗎
3.1.2面向?qū)ο笏枷?br />3.1.3身處對(duì)象世界中
3.1.4對(duì)象關(guān)系
3.1.5抽象
3.2小結(jié)
第4章基于庫和模式的設(shè)計(jì)
4.1重用代碼
4.1.1有關(guān)術(shù)語
4.1.2決定是否重用代碼
4.1.3重用代碼的策略
4.1.4捆綁第三方應(yīng)用
4.1.5開源庫
4.1.6C++標(biāo)準(zhǔn)庫
4.2利用模式和技術(shù)完成設(shè)計(jì)
4.2.1設(shè)計(jì)技術(shù)
4.2.2設(shè)計(jì)模式
4.3小結(jié)
第5章重用設(shè)計(jì)
5.1重用方法論
5.2如何設(shè)計(jì)可重用的代碼
5.2.1使用抽象
5.2.2適當(dāng)?shù)亟⒋a結(jié)構(gòu)以優(yōu)化
重用
5.2.3設(shè)計(jì)可用的接口
5.2.4協(xié)調(diào)一般性和易用性
5.3小結(jié)
第6章充分利用軟件工程方法
6.1為什么需要過程
6.2軟件生命期模型
6.2.1分階段模型和瀑布模型
6.2.2螺旋方法
6.2.3統(tǒng)一開發(fā)過程
6.3軟件工程方法論
6.3.1極限編程(XP)
6.3.2軟件triage
6.4建立自己的過程和方法論
6.4.1以開放的心態(tài)接納新思想
6.4.2匯總新思想
6.4.3明確哪些可行,哪些不可行
6.4.4不要做叛逃者
6.5小結(jié)
第二部分編寫C++代碼方式
第7章好的編碼風(fēng)格
7.1為什么代碼看上去要好
7.1.1提前考慮
7.1.2保持清晰
7.1.3好的代碼風(fēng)格包括哪些因素
7.2為代碼加注釋
7.2.1寫注釋的原因
7.2.2注釋風(fēng)格
7.2.3本書中的注釋
7.3分解
7.3.1通過重構(gòu)來分解
7.3.2根據(jù)設(shè)計(jì)來分解
7.3.3本書中的分解
7.4命名
7.4.1選擇一個(gè)好名字
7.4.2命名約定
7.5合理地使用語言特性
7.5.1使用常量
7.5.2利用const變量
7.5.3使用引用而不是指針
7.5.4使用定制異常
7.6格式化
7.6.1有關(guān)大括號(hào)對(duì)齊的爭(zhēng)論
7.6.2考慮空格和小括號(hào)
7.6.3空格和制表符
7.7風(fēng)格方面的難題
7.8小結(jié)
第8章掌握類和對(duì)象
8.1電子表格示例
8.2編寫類
8.2.1類定義
8.2.2定義方法
8.2.3使用對(duì)象
8.3對(duì)象生命期
8.3.1對(duì)象創(chuàng)建
8.3.2對(duì)象撤銷
8.3.3對(duì)象賦值
8.3.4區(qū)別復(fù)制和賦值
8.4小結(jié)
第9章精通類和對(duì)象
9.1對(duì)象中的動(dòng)態(tài)內(nèi)存分配
9.1.1Spreadsheet類
9.1.2用析構(gòu)函數(shù)釋放內(nèi)存
9.1.3處理復(fù)制和賦值
9.2不同類型的數(shù)據(jù)成員
9.2.1靜態(tài)數(shù)據(jù)成員
9.2.2const數(shù)據(jù)成員
9.2.3引用數(shù)據(jù)成員
9.2.4const引用數(shù)據(jù)成員
9.3深入了解方法
9.3.1靜態(tài)方法
9.3.2const方法
9.3.3方法重載
9.3.4默認(rèn)參數(shù)
9.3.5內(nèi)聯(lián)方法
9.4嵌套類
9.5友元
9.6操作符重載
9.6.1實(shí)現(xiàn)加法
9.6.2重載算術(shù)操作符
9.6.3重載比較操作符
9.6.4利用操作符重載構(gòu)建類型
9.7方法和成員指針
9.8構(gòu)建抽象類
9.9小結(jié)
第10章探索繼承技術(shù)
10.1使用繼承構(gòu)建類
10.1.1擴(kuò)展類
10.1.2覆蓋方法
10.2繼承以實(shí)現(xiàn)重用
10.2.1類WeatherPrediction
10.2.2在子類中增加功能
10.2.3在子類中進(jìn)行功能替換
10.3考慮父類
10.3.1父構(gòu)造函數(shù)
10.3.2父析構(gòu)函數(shù)
10.3.3引用父類的數(shù)據(jù)
10.3.4向上類型強(qiáng)制轉(zhuǎn)換和向下類型
強(qiáng)制轉(zhuǎn)換
10.4繼承以實(shí)現(xiàn)多態(tài)
10.4.1Spreadsheet的返回結(jié)果
10.4.2設(shè)計(jì)多態(tài)電子表格單元格
10.4.3電子表格單元格的基類—
10.4.4各個(gè)子類
10.4.5充分利用多態(tài)
10.4.6將來的考慮
10.5多重繼承
10.5.1從多個(gè)類繼承
10.5.2命名沖突與二義基類
10.6繼承技術(shù)中有趣而隱蔽的問題
10.6.1改變覆蓋方法的特性
10.6.2覆蓋方法的特殊情況
10.6.3復(fù)制構(gòu)造函數(shù)與相等操作符
10.6.4關(guān)鍵字virtual的真相
10.6.5運(yùn)行時(shí)類型工具
10.6.6非公共繼承
10.6.7虛基類
10.7小結(jié)
第11章利用模板編寫通用代碼
11.1模板概述
11.2類模板
11.2.1編寫類模板
11.2.2編譯器如何處理模板
11.2.3模板代碼在文件之間的分布
11.2.4模板參數(shù)
11.2.5方法模板
11.2.6模板類特殊化
11.2.7從模板類派生子類
11.2.8繼承與特殊化的區(qū)別
11.3函數(shù)模板
11.3.1函數(shù)模板特殊化
11.3.2函數(shù)模板的重載
11.3.3類模板的友元函數(shù)模板
11.4高級(jí)模板
11.4.1關(guān)于模板參數(shù)的更多知識(shí)
11.4.2模板類的部分特殊化
11.4,3用重載模板函數(shù)部分特殊化
11.4.4模板遞歸
11.5小結(jié)
第12章理解C++疑難問題
12.1引用
12.1.1引用變量
12.1.2引用數(shù)據(jù)成員
12.1.3引用參數(shù)
12.1.4引用返回類型
12.1.5采用引用還是指針
12.2關(guān)鍵字疑點(diǎn)
12.2.1關(guān)鍵字const
12.2.2關(guān)鍵字static
12.2.3非局部變量的初始化順序
12.3類型與類型強(qiáng)制轉(zhuǎn)換
12.3.1typedef
12.3.2類型強(qiáng)制轉(zhuǎn)換
12.4解析作用域
12.5頭文件
12.6C實(shí)用工具
12.6.1變量長(zhǎng)度參數(shù)列表
12.6.2預(yù)處理宏
12.7小結(jié)第三部分掌握C++高級(jí)特性
第13章有效的內(nèi)存管理
13.1使用動(dòng)態(tài)內(nèi)存
13.1.1如何描述內(nèi)存
13.1.2內(nèi)存的分配與撤銷
13.1.3數(shù)組
13.1.4使用指針
13.2數(shù)組與指針的對(duì)應(yīng)
13.2.1數(shù)組即指針
13.2.2指針并非都是數(shù)組
13.3動(dòng)態(tài)字符串
13.3.1C風(fēng)格的字符串
13.3.2字符串直接量
13.3.3C++的字符串類
13.4低級(jí)的內(nèi)存操作
13,4.1指針運(yùn)算
13.4.2自定義內(nèi)存管理
13.4.3垃圾回收
13.4.4對(duì)象池
13.4.5函數(shù)指針
13.5常見的內(nèi)存陷阱
13.5.1字符串空間分配不足
13.5.2內(nèi)存泄漏
13.5.3二次刪除與無效指針
13.5.4訪問越界指針
13.6小結(jié)..
第14章揭開C++I/O的神秘
面紗
14.1使用流
14.1.1到底什么是流
14.1.2流的源與目的
14.1.3流輸出
14.1.4流輸入
14.1.5輸入與輸出對(duì)象
14.2字符串流
14.3文件流
14.3.1使用seek()與tell()
14.3.2鏈接流
14.4雙向I/O
14.5國(guó)際化
14.5.1寬字符
14.5.2非西方字符集
14.5.3本地化環(huán)境與方面
14.6小結(jié)
第15章處理錯(cuò)誤
15.1錯(cuò)誤和異常
15.1.1到底什么是異常
15.1.2C++中的異常為什么好
15.1.3C++中的異常為什么不好
15.1.4我們的建議
15.2異常機(jī)制
15.2.1拋出和捕獲異常
15.2.2異常類型
15.2.3拋出和捕獲多個(gè)異常
15.2.4未捕獲的異常
15.2.5拋出列表
15.3異常和多態(tài)
15.3.1標(biāo)準(zhǔn)異常層次體系
15.3.2按類層次捕獲異常
15.3.3編寫自己的異常類
15.4棧展開和清除
15.4.1捕獲.清除和重新拋出
15.4.2使用智能指針
15.5常見的錯(cuò)誤處理問題
15.5.1內(nèi)存分配錯(cuò)誤
15.5.2構(gòu)造函數(shù)中的錯(cuò)誤
15.5.3析構(gòu)函數(shù)中的錯(cuò)誤
15.6綜合
15.7小結(jié)
第四部分確保無錯(cuò)代碼
第16章重載C++操作符
16.1操作符重載概述
16.1.1為什么要重載操作符
16.1.2操作符重載的限制
16.1.3操作符重載中的選擇
16.1.4不應(yīng)重載的操作符
16.1.5可重載操作符小結(jié)
16.2重載算術(shù)操作符
16.2.1重載一元減和一元加
16.2.2重載自增和自減
16.3重載位操作符和二元邏輯操作符
16.4重載插入和析取操作符
16.5重載下標(biāo)操作符
16.5.1利用operator[]提供只讀
訪問
16.5.2非整數(shù)數(shù)組索引
16.6重載函數(shù)調(diào)用操作符
16.?重載解除引用操作符
16.7.1實(shí)現(xiàn)operator
16.7.2實(shí)現(xiàn)operator一>
16.7.3到底什么是operator一>
16.8編寫轉(zhuǎn)換操作符
16.8.1轉(zhuǎn)換操作符的二義性問題
16.8.2布爾表達(dá)式的轉(zhuǎn)換
16.9重載內(nèi)存分配和撤銷操作符
16.9.1new和delete究竟如何工作
16.9.2重載operatornew和operatordelete
16.9.3重載帶額外參數(shù)的operatornew和operatordelete
16.10小結(jié)
第17章編寫高效的C++程序
17.1性能和效率概述
17.1.1實(shí)現(xiàn)高效的兩種方法
17.1.2兩類程序
17.1.3C++是一種低效語言嗎
17.2語言級(jí)效率
17.2.1高效地處理對(duì)象
17.2.2不要過度使用高開銷的語言特性
17.2.3使用內(nèi)聯(lián)方法和函數(shù)
17.3設(shè)計(jì)級(jí)效率
17.3.1盡可能緩存
17.3.2使用對(duì)象池
17.3.3使用線程池
17.4測(cè)評(píng)分析
17.5小結(jié)
第18章開發(fā)跨平臺(tái)和跨語言的應(yīng)用
18.1跨平臺(tái)開發(fā)
18.1.1體系結(jié)構(gòu)問題
18.1.2實(shí)現(xiàn)問題
18.1.3特定于平臺(tái)的特性
18.2跨語言開發(fā)
18.2.1混合C和C++
18.2.2轉(zhuǎn)換模式
18.2.3與C代碼的鏈接
18.2.4利用JNI混合Java和C++
18.2.5C++與Peri和Shell腳本的混合
18.2.6C++與匯編代碼的混合
18.3小結(jié)
第19章熟練地測(cè)試
19.1質(zhì)量控制
19.1.1誰來負(fù)責(zé)測(cè)試
19.1.2bug的生命期
19.1.3bug跟蹤工具
19.2單元測(cè)試
19.2.1單元測(cè)試的方法
19.2.2單元測(cè)試過程
19.2.3實(shí)戰(zhàn)單元測(cè)試
19.3高級(jí)測(cè)試
19.3.1集成測(cè)試
19.3.2系統(tǒng)測(cè)試
19.3:3回歸測(cè)試
19.4成功測(cè)試的提示
19.5小結(jié)
第20章征服調(diào)試
20.1調(diào)試基本法則
20.2bug分類
20.3避免bug
20.4找出bug的方法
20.4.1錯(cuò)誤日志
20.4.2調(diào)試軌跡
20.4.3斷言
20.5調(diào)試技術(shù)
20.S.1再生bug
20.5.2調(diào)試可再生bug
20.5.3調(diào)試不可再生bug
20.5.4調(diào)試內(nèi)存問題
20.5.5調(diào)試多線程程序
20.5.6調(diào)試示例:文章引用
20.5.7從ArticleCitations示例學(xué)到的教訓(xùn)
20.6小結(jié)
第21章深入STL:容器和迭代器
21,1容器概述
21.1.1元素需求
21.1.2異常和錯(cuò)誤檢查
21.1.3迭代器
21.2順序容器
21.2.1vector
21.2.2vectOr特殊化
21.2.3deque
21.2.4list
21.3容器適配器
21.3.1queue
21.3.2priority_queue
2L3.3stack
21.4關(guān)聯(lián)容器
21.4.1pair工具類
21.4.2map
21.4.3multimap
21,4.4set
21.4.5multiset
21.5其他容器
21.5.1數(shù)組作為STL容器
21.5.2string作為STI容器
21.5.3流作為STL容器
21.5.4bitset
21.6小結(jié)
第五部分使用庫和模式
第22章掌握STL算法和函數(shù)對(duì)象
22.1算法概述
22.1.1find()和find—汀()算法
22.1.2accumulate()算法
22.2函數(shù)對(duì)象
22.2.1算術(shù)函數(shù)對(duì)象
22.2.2比較函數(shù)對(duì)象
22.2.3邏輯函數(shù)對(duì)象
22.2.4函數(shù)對(duì)象適配器
22.2.5編寫自己的函數(shù)對(duì)象
22.3算法細(xì)節(jié)
22.3.1工具算法
22.3.2非修改算法
22.3.3修改算法
22.3.4排序算法
22.3.5集合算法
22.4算法和函數(shù)對(duì)象示例:選民注冊(cè)審計(jì)
22.4.1選民注冊(cè)審計(jì)問題描述
22.4.2auditVoterRolls()函數(shù)
22.4.3getDuplicates()函數(shù)
22.4.4RemoveNames函數(shù)對(duì)象
22.4.5NamelnList函數(shù)對(duì)象
22.4.6測(cè)試auditVoterRolls()函數(shù)
22.5小結(jié)
第23章定制和擴(kuò)展STL
23.1分配器
23.2迭代器適配器
23.2.1逆序迭代器
23.2.2流迭代器
23.2.3插入迭代器
23.3擴(kuò)展STL
23.3.1為什么要擴(kuò)展STL
23.3.2編寫STL算法
23.3.3編寫一個(gè)STL容器
23.4小結(jié)
第24章探討分布式對(duì)象
24.1分布式計(jì)算的魅力
24.1.1分布以獲得可擴(kuò)展性
24.1.2分布以獲得可靠性
24.1.3分布以獲得集中性
24.1.4分布式內(nèi)容
24.1.5分布式vs網(wǎng)絡(luò)式
24.2分布式對(duì)象
24.2.1串行化和編組
24.2.2遠(yuǎn)程過程調(diào)用
24.3CORBA
24.3.1接口定義語言—
24.3.2實(shí)現(xiàn)類
24.3.3使用對(duì)象
24.4XML
24.4.1XML陜速入門
24.4.2XML作為一種分布式對(duì)象技術(shù).
24.4.3用C++生成和解析XML
24.4.4XML驗(yàn)證
24.4.5用XML構(gòu)建分布式對(duì)象
24.4.6SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議)
24.5小結(jié)
第25章結(jié)合技術(shù)和框架
25.1“我想不起來如何”
25.1.1編寫一個(gè)類
25.1.2派生一個(gè)現(xiàn)有類
25.1.3拋出和捕獲異常
25.1.4讀文件
25.1.5寫文件
25.1.6編寫模板類
25.2還有更好的辦法
25.2.1帶引用計(jì)數(shù)的智能指針
25.2.2雙重分派
25.2.3混合類
25.3面向?qū)ο罂蚣?br />25.3.1使用框架
25.3.2模型—視圖—控制器模式
25.4小結(jié)
第26章應(yīng)用設(shè)計(jì)模式
26.1單例模式
26.1.1舉例:日志機(jī)制
26.1.2單例的實(shí)現(xiàn)
26.1.3使用單例
26.2工廠模式
26.2.1舉例:汽車工廠模擬
26.2.2實(shí)現(xiàn)工廠
26.2.3使用工廠
26.2.4工廠的其他使用
26.3代理模式
26.3.1舉例:隱藏網(wǎng)絡(luò)連通性問題
26.3.2實(shí)現(xiàn)代理
26.3.3使用代理
26.4適配器模式
26.4.1舉例:適配一個(gè)XML庫
26.4.2適配器的實(shí)現(xiàn)
26.4.3使用適配器
26.5裝飾器模式
26.5.1舉例:定義網(wǎng)頁中的樣式
26.5.2裝飾器的實(shí)現(xiàn)
26.5.3使用裝飾器
26.6職責(zé)鏈模式
26.6.1舉例:事件處理
26.6.2職責(zé)鏈的實(shí)現(xiàn)
26.6.3使用職責(zé)鏈
26.7觀察者模式
26.7.1舉例:事件處理
26.7.2實(shí)現(xiàn)觀察者
26.7.3使用觀察者
26.8小結(jié)
附錄
附錄AC++面試寶典
附錄B參考書目...

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)