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

C++高級編程

C++高級編程

定 價:¥88.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

譯者序
前言
作者簡介
第一部分專業(yè)C+十程序設(shè)計概述
第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++進階
1.2.1指針和動態(tài)內(nèi)存
1.2.2C++中的字符串
1.2.3引用
1.2.4異常
1.2.5const的多重用途
1.3作為一種面向?qū)ο笳Z言的C++
1.4你的第一個實用的C十十程序
1.4,1一個員工記錄系統(tǒng)
1.4.2Employee類
1.4.3Database類
1.4.4用戶界面
1.4.5對程序的評價
1.5小結(jié)
第2章設(shè)計專業(yè)的C++程序
2.2編程設(shè)計的重要性
2.3C++設(shè)計有什么不同之處
2.4C++設(shè)計的兩個原則
2.4.1抽象
2.4.2重用
2.5設(shè)計一個象棋程序
2.5.1需求
2.5.2設(shè)計步驟
2.6小結(jié)
第3章基于對象的設(shè)計
3.1面向?qū)ο蟮氖澜缬^
3.1.1我是在以過程性思維思考嗎
3.1.2面向?qū)ο笏枷?br />3.1.3身處對象世界中
3.1.4對象關(guān)系
3.1.5抽象
3.2小結(jié)
第4章基于庫和模式的設(shè)計
4.1重用代碼
4.1.1有關(guān)術(shù)語
4.1.2決定是否重用代碼
4.1.3重用代碼的策略
4.1.4捆綁第三方應用
4.1.5開源庫
4.1.6C++標準庫
4.2利用模式和技術(shù)完成設(shè)計
4.2.1設(shè)計技術(shù)
4.2.2設(shè)計模式
4.3小結(jié)
第5章重用設(shè)計
5.1重用方法論
5.2如何設(shè)計可重用的代碼
5.2.1使用抽象
5.2.2適當?shù)亟⒋a結(jié)構(gòu)以優(yōu)化
重用
5.2.3設(shè)計可用的接口
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章好的編碼風格
7.1為什么代碼看上去要好
7.1.1提前考慮
7.1.2保持清晰
7.1.3好的代碼風格包括哪些因素
7.2為代碼加注釋
7.2.1寫注釋的原因
7.2.2注釋風格
7.2.3本書中的注釋
7.3分解
7.3.1通過重構(gòu)來分解
7.3.2根據(jù)設(shè)計來分解
7.3.3本書中的分解
7.4命名
7.4.1選擇一個好名字
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)大括號對齊的爭論
7.6.2考慮空格和小括號
7.6.3空格和制表符
7.7風格方面的難題
7.8小結(jié)
第8章掌握類和對象
8.1電子表格示例
8.2編寫類
8.2.1類定義
8.2.2定義方法
8.2.3使用對象
8.3對象生命期
8.3.1對象創(chuàng)建
8.3.2對象撤銷
8.3.3對象賦值
8.3.4區(qū)別復制和賦值
8.4小結(jié)
第9章精通類和對象
9.1對象中的動態(tài)內(nèi)存分配
9.1.1Spreadsheet類
9.1.2用析構(gòu)函數(shù)釋放內(nèi)存
9.1.3處理復制和賦值
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默認參數(shù)
9.3.5內(nèi)聯(lián)方法
9.4嵌套類
9.5友元
9.6操作符重載
9.6.1實現(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擴展類
10.1.2覆蓋方法
10.2繼承以實現(xiàn)重用
10.2.1類WeatherPrediction
10.2.2在子類中增加功能
10.2.3在子類中進行功能替換
10.3考慮父類
10.3.1父構(gòu)造函數(shù)
10.3.2父析構(gòu)函數(shù)
10.3.3引用父類的數(shù)據(jù)
10.3.4向上類型強制轉(zhuǎn)換和向下類型
強制轉(zhuǎn)換
10.4繼承以實現(xiàn)多態(tài)
10.4.1Spreadsheet的返回結(jié)果
10.4.2設(shè)計多態(tài)電子表格單元格
10.4.3電子表格單元格的基類—
10.4.4各個子類
10.4.5充分利用多態(tài)
10.4.6將來的考慮
10.5多重繼承
10.5.1從多個類繼承
10.5.2命名沖突與二義基類
10.6繼承技術(shù)中有趣而隱蔽的問題
10.6.1改變覆蓋方法的特性
10.6.2覆蓋方法的特殊情況
10.6.3復制構(gòu)造函數(shù)與相等操作符
10.6.4關(guān)鍵字virtual的真相
10.6.5運行時類型工具
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高級模板
11.4.1關(guān)于模板參數(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)鍵字疑點
12.2.1關(guān)鍵字const
12.2.2關(guān)鍵字static
12.2.3非局部變量的初始化順序
12.3類型與類型強制轉(zhuǎn)換
12.3.1typedef
12.3.2類型強制轉(zhuǎn)換
12.4解析作用域
12.5頭文件
12.6C實用工具
12.6.1變量長度參數(shù)列表
12.6.2預處理宏
12.7小結(jié)第三部分掌握C++高級特性
第13章有效的內(nèi)存管理
13.1使用動態(tài)內(nèi)存
13.1.1如何描述內(nèi)存
13.1.2內(nèi)存的分配與撤銷
13.1.3數(shù)組
13.1.4使用指針
13.2數(shù)組與指針的對應
13.2.1數(shù)組即指針
13.2.2指針并非都是數(shù)組
13.3動態(tài)字符串
13.3.1C風格的字符串
13.3.2字符串直接量
13.3.3C++的字符串類
13.4低級的內(nèi)存操作
13,4.1指針運算
13.4.2自定義內(nèi)存管理
13.4.3垃圾回收
13.4.4對象池
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輸入與輸出對象
14.2字符串流
14.3文件流
14.3.1使用seek()與tell()
14.3.2鏈接流
14.4雙向I/O
14.5國際化
14.5.1寬字符
14.5.2非西方字符集
14.5.3本地化環(huán)境與方面
14.6小結(jié)
第15章處理錯誤
15.1錯誤和異常
15.1.1到底什么是異常
15.1.2C++中的異常為什么好
15.1.3C++中的異常為什么不好
15.1.4我們的建議
15.2異常機制
15.2.1拋出和捕獲異常
15.2.2異常類型
15.2.3拋出和捕獲多個異常
15.2.4未捕獲的異常
15.2.5拋出列表
15.3異常和多態(tài)
15.3.1標準異常層次體系
15.3.2按類層次捕獲異常
15.3.3編寫自己的異常類
15.4棧展開和清除
15.4.1捕獲.清除和重新拋出
15.4.2使用智能指針
15.5常見的錯誤處理問題
15.5.1內(nèi)存分配錯誤
15.5.2構(gòu)造函數(shù)中的錯誤
15.5.3析構(gòu)函數(shù)中的錯誤
15.6綜合
15.7小結(jié)
第四部分確保無錯代碼
第16章重載C++操作符
16.1操作符重載概述
16.1.1為什么要重載操作符
16.1.2操作符重載的限制
16.1.3操作符重載中的選擇
16.1.4不應重載的操作符
16.1.5可重載操作符小結(jié)
16.2重載算術(shù)操作符
16.2.1重載一元減和一元加
16.2.2重載自增和自減
16.3重載位操作符和二元邏輯操作符
16.4重載插入和析取操作符
16.5重載下標操作符
16.5.1利用operator[]提供只讀
訪問
16.5.2非整數(shù)數(shù)組索引
16.6重載函數(shù)調(diào)用操作符
16.?重載解除引用操作符
16.7.1實現(xiàn)operator
16.7.2實現(xiàn)operator一>
16.7.3到底什么是operator一>
16.8編寫轉(zhuǎn)換操作符
16.8.1轉(zhuǎn)換操作符的二義性問題
16.8.2布爾表達式的轉(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實現(xiàn)高效的兩種方法
17.1.2兩類程序
17.1.3C++是一種低效語言嗎
17.2語言級效率
17.2.1高效地處理對象
17.2.2不要過度使用高開銷的語言特性
17.2.3使用內(nèi)聯(lián)方法和函數(shù)
17.3設(shè)計級效率
17.3.1盡可能緩存
17.3.2使用對象池
17.3.3使用線程池
17.4測評分析
17.5小結(jié)
第18章開發(fā)跨平臺和跨語言的應用
18.1跨平臺開發(fā)
18.1.1體系結(jié)構(gòu)問題
18.1.2實現(xiàn)問題
18.1.3特定于平臺的特性
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章熟練地測試
19.1質(zhì)量控制
19.1.1誰來負責測試
19.1.2bug的生命期
19.1.3bug跟蹤工具
19.2單元測試
19.2.1單元測試的方法
19.2.2單元測試過程
19.2.3實戰(zhàn)單元測試
19.3高級測試
19.3.1集成測試
19.3.2系統(tǒng)測試
19.3:3回歸測試
19.4成功測試的提示
19.5小結(jié)
第20章征服調(diào)試
20.1調(diào)試基本法則
20.2bug分類
20.3避免bug
20.4找出bug的方法
20.4.1錯誤日志
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示例學到的教訓
20.6小結(jié)
第21章深入STL:容器和迭代器
21,1容器概述
21.1.1元素需求
21.1.2異常和錯誤檢查
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ù)對象
22.1算法概述
22.1.1find()和find—汀()算法
22.1.2accumulate()算法
22.2函數(shù)對象
22.2.1算術(shù)函數(shù)對象
22.2.2比較函數(shù)對象
22.2.3邏輯函數(shù)對象
22.2.4函數(shù)對象適配器
22.2.5編寫自己的函數(shù)對象
22.3算法細節(jié)
22.3.1工具算法
22.3.2非修改算法
22.3.3修改算法
22.3.4排序算法
22.3.5集合算法
22.4算法和函數(shù)對象示例:選民注冊審計
22.4.1選民注冊審計問題描述
22.4.2auditVoterRolls()函數(shù)
22.4.3getDuplicates()函數(shù)
22.4.4RemoveNames函數(shù)對象
22.4.5NamelnList函數(shù)對象
22.4.6測試auditVoterRolls()函數(shù)
22.5小結(jié)
第23章定制和擴展STL
23.1分配器
23.2迭代器適配器
23.2.1逆序迭代器
23.2.2流迭代器
23.2.3插入迭代器
23.3擴展STL
23.3.1為什么要擴展STL
23.3.2編寫STL算法
23.3.3編寫一個STL容器
23.4小結(jié)
第24章探討分布式對象
24.1分布式計算的魅力
24.1.1分布以獲得可擴展性
24.1.2分布以獲得可靠性
24.1.3分布以獲得集中性
24.1.4分布式內(nèi)容
24.1.5分布式vs網(wǎng)絡(luò)式
24.2分布式對象
24.2.1串行化和編組
24.2.2遠程過程調(diào)用
24.3CORBA
24.3.1接口定義語言—
24.3.2實現(xiàn)類
24.3.3使用對象
24.4XML
24.4.1XML陜速入門
24.4.2XML作為一種分布式對象技術(shù).
24.4.3用C++生成和解析XML
24.4.4XML驗證
24.4.5用XML構(gòu)建分布式對象
24.4.6SOAP(簡單對象訪問協(xié)議)
24.5小結(jié)
第25章結(jié)合技術(shù)和框架
25.1“我想不起來如何”
25.1.1編寫一個類
25.1.2派生一個現(xiàn)有類
25.1.3拋出和捕獲異常
25.1.4讀文件
25.1.5寫文件
25.1.6編寫模板類
25.2還有更好的辦法
25.2.1帶引用計數(shù)的智能指針
25.2.2雙重分派
25.2.3混合類
25.3面向?qū)ο罂蚣?br />25.3.1使用框架
25.3.2模型—視圖—控制器模式
25.4小結(jié)
第26章應用設(shè)計模式
26.1單例模式
26.1.1舉例:日志機制
26.1.2單例的實現(xiàn)
26.1.3使用單例
26.2工廠模式
26.2.1舉例:汽車工廠模擬
26.2.2實現(xiàn)工廠
26.2.3使用工廠
26.2.4工廠的其他使用
26.3代理模式
26.3.1舉例:隱藏網(wǎng)絡(luò)連通性問題
26.3.2實現(xiàn)代理
26.3.3使用代理
26.4適配器模式
26.4.1舉例:適配一個XML庫
26.4.2適配器的實現(xiàn)
26.4.3使用適配器
26.5裝飾器模式
26.5.1舉例:定義網(wǎng)頁中的樣式
26.5.2裝飾器的實現(xiàn)
26.5.3使用裝飾器
26.6職責鏈模式
26.6.1舉例:事件處理
26.6.2職責鏈的實現(xiàn)
26.6.3使用職責鏈
26.7觀察者模式
26.7.1舉例:事件處理
26.7.2實現(xiàn)觀察者
26.7.3使用觀察者
26.8小結(jié)
附錄
附錄AC++面試寶典
附錄B參考書目...

本目錄推薦

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