《C++程式設計(第3版)》是由譚浩強編著,2015年清華大學出版社出版的中國高等院校計算機基礎教育課程體系規劃教材。該教材是學習C++的入門教材,可供各類專業學生使用,也可作為計算機培訓班的教材以及讀者自學參考。
該教材共分四篇,分別為基本知識、基於過程的程式設計、基於對象的程式設計、面向對象的程式設計。全書共14章,主要內容包括C++的初步知識,數據的存儲、表示形式和基本運算等。
基本介紹
- 書名:C++程式設計(第3版)
- 作者:譚浩強
- ISBN:9787302408307
- 類別:中國高等院校計算機基礎教育課程體系規劃教材
- 頁數:466頁
- 出版社:清華大學出版社
- 出版時間:2015年8月1日
- 裝幀:平裝
- 開本:16開
- 字數:716千字
- CIP核字號:2015153321
成書過程
修訂情況
出版工作
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
張民 | 傅瑞學 | 白蕾 | 沈露 |
內容簡介
教材目錄
第1篇基本知識 第1章C++的初步知識3 *1.1從C到C++3 *1.2最簡單的C++程式5 1.3C++程式的構成和書寫形式12 1.4C++程式的編寫和實現13 1.5關於C++上機實踐15 習題15 第2章數據的存儲、表示形式和基本運算18 2.1C++的數據類型18 2.2常量20 2.2.1什麼是常量20 2.2.2數值常量20 2.2.3字元常量22 2.2.4符號常量25 2.3變數26 2.3.1什麼是變數26 2.3.2變數名規則26 2.3.3定義變數27 2.3.4對變數賦初值28 2.3.5常變數28 2.4C++的運算符29 2.5算術運算符與算術表達式30 2.5.1基本的算術運算符30 2.5.2算術表達式和運算符的優先權與結合性30 2.5.3表達式中各類數值型數據間的混合運算30 2.5.4自增(++)和自減(--)運算符31 2.5.5強制類型轉換運算符32 2.6賦值運算符和賦值表達式33 2.6.1賦值運算符33 2.6.2賦值過程中的類型轉換33 2.6.3複合賦值運算符35 2.6.4賦值表達式35 2.7逗號運算符和逗號表達式36 習題37 第2篇基於過程的程式設計 第3章程式設計初步41 3.1基於過程的程式設計和算法41 3.1.1算法的概念41 3.1.2算法的表示42 3.2C++的程式結構和C++語句43 3.3賦值操作46 3.4C++的輸入與輸出46 *3.4.1輸入流與輸出流的基本操作47 *3.4.2在標準輸入流與輸出流中使用控制符49 3.4.3用getchar和putchar 函式進行字元的輸入和輸出52 3.4.4用scanf和printf函式進行輸入和輸出53 3.5編寫順序結構的程式54 3.6關係運算和邏輯運算55 3.6.1關係運算和關係表達式55 *3.6.2邏輯常量和邏輯變數57 3.6.3邏輯運算和邏輯表達式58 3.7選擇結構和if語句60 3.7.1if語句的形式60 3.7.2if語句的嵌套63 3.7.3條件運算符和條件表達式64 3.7.4多分支選擇結構與switch 語句65 3.7.5編寫選擇結構的程式67 3.8循環結構和循環語句69 3.8.1用while語句構成循環70 3.8.2用dowhile語句構成循環71 3.8.3用for語句構成循環72 3.8.4循環的嵌套74 3.8.5提前結束循環(break語句和continue語句)74 3.8.6編寫循環結構的程式75 習題80 第4章利用函式實現指定的功能83 4.1什麼是函式83 4.1.1為什麼需要函式83 4.1.2函式調用舉例84 4.1.3函式的分類85 4.2定義函式的一般形式85 4.2.1定義無參函式的一般形式85 4.2.2定義有參函式的一般形式86 4.3函式參數和函式的值86 4.3.1形式參數和實際參數86 4.3.2函式的返回值88 4.4函式的調用89 4.4.1函式調用的一般形式89 4.4.2函式調用的方式89 4.4.3對被調用函式的聲明和函式原型90 4.5函式的嵌套調用92 4.6函式的遞歸調用95 *4.7內置函式98 *4.8函式的重載100 *4.9函式模板102 *4.10有默認參數的函式104 4.11局部變數和全局變數106 4.11.1局部變數106 4.11.2全局變數107 4.12變數的存儲類別109 4.12.1動態存儲方式與靜態存儲方式109 4.12.2自動變數110 4.12.3用static聲明靜態局部變數110 4.12.4用register聲明暫存器變數113 4.12.5用extern聲明外部變數113 4.12.6用static聲明靜態外部變數115 4.13變數屬性小結115 4.14關於變數的聲明和定義118 4.15內部函式和外部函式119 4.15.1內部函式119 4.15.2外部函式119 4.16頭檔案121 *4.16.1頭檔案的內容121 4.16.2關於C++標準庫和頭檔案的形式121 習題122 第5章利用數組處理批量數據124 5.1為什麼需要用數組124 5.2定義和引用一維數組125 5.2.1定義一維數組125 5.2.2引用一維數組的元素125 5.2.3一維數組的初始化126 5.2.4一維數組程式舉例126 5.3定義和引用二維數組128 5.3.1定義二維數組129 5.3.2引用二維數組的元素130 5.3.3二維數組的初始化130 5.3.4二維數組程式舉例131 5.4用數組作函式參數133 5.5字元數組137 5.5.1定義和初始化字元數組137 5.5.2字元數組的賦值與引用138 5.5.3字元串和字元串結束標誌139 5.5.4字元數組的輸入輸出140 5.5.5使用字元串處理函式對字元串進行操作141 5.5.6字元數組套用舉例144 *5.6C++處理字元串的方法——字元串類與字元串變數145 5.6.1字元串變數的定義和引用146 5.6.2字元串變數的運算147 5.6.3字元串數組147 5.6.4字元串運算舉例148 習題151 第6章善於使用指針與引用153 6.1什麼是指針153 6.2變數與指針155 6.2.1定義指針變數155 6.2.2引用指針變數157 6.2.3用指針作函式參數159 6.3數組與指針164 6.3.1指向數組元素的指針164 6.3.2用指針變數作函式形參接收數組地址166 6.4字元串與指針169 6.5函式與指針171 6.6返回指針值的函式172 6.7指針數組和指向指針的指針 173 6.7.1指針數組173 *6.7.2指向指針的指針175 *6.8const指針177 *6.9void指針類型179 6.10有關指針的數據類型和指針運算的小結180 6.10.1有關指針的數據類型的小結180 6.10.2指針運算小結180 *6.11引用182 6.11.1什麼是變數的引用182 6.11.2引用的簡單使用183 6.11.3引用作為函式參數184 習題188 第7章用戶自定義數據類型190 7.1結構體類型190 7.1.1為什麼需要用結構體類型190 | 7.1.2結構體類型變數的定義方法及其初始化191 7.1.3引用結構體變數193 7.1.4結構體數組195 7.1.5指向結構體變數的指針197 7.1.6結構體類型數據作為函式參數200 *7.1.7用new和delete運算符進行動態分配和撤銷存儲空間203 7.2枚舉類型205 7.3用typedef聲明新的類型名208 習題211 第3篇基於對象的程式設計 第8章類和對象的特性215 8.1面向對象程式設計方法概述215 8.1.1什麼是面向對象的程式設計215 8.1.2面向對象程式設計的特點219 8.1.3類和對象的作用220 8.1.4面向對象的軟體開發221 8.2類的聲明和對象的定義222 8.2.1類和對象的關係222 8.2.2聲明類類型222 8.2.3定義對象的方法225 8.3類的成員函式226 8.3.1成員函式的性質226 8.3.2在類外定義成員函式227 8.3.3內置成員函式228 8.3.4成員函式的存儲方式229 8.4對象成員的引用231 8.4.1通過對象名和成員運算符訪問對象中的成員231 8.4.2通過指向對象的指針訪問對象中的成員232 8.4.3通過對象的引用來訪問對象中的成員232 8.5類的封裝性和信息隱蔽232 8.5.1公用接口與私有實現的分離232 8.5.2類聲明和成員函式定義的分離234 8.5.3面向對象程式設計中的幾個名詞235 8.6類和對象的簡單套用舉例236 習題243 第9章怎樣使用類和對象245 9.1利用構造函式對類對象進行初始化245 9.1.1對象的初始化245 9.1.2用構造函式實現數據成員的初始化246 9.1.3帶參數的構造函式248 9.1.4用參數初始化表對數據成員初始化250 9.1.5構造函式的重載251 9.1.6使用默認參數的構造函式252 9.2析構函式255 9.3調用構造函式和析構函式的順序257 9.4對象數組259 9.5對象指針261 9.5.1指向對象的指針261 9.5.2指向對象成員的指針262 9.5.3this指針265 9.6共用數據的保護266 9.6.1常對象266 9.6.2常對象成員268 9.6.3指向對象的常指針269 9.6.4指向常對象的指針變數270 9.6.5對象的常引用273 9.6.6const型數據的小結274 9.7對象的動態建立和釋放274 9.8對象的賦值和複製275 9.8.1對象的賦值275 9.8.2對象的複製277 9.9靜態成員279 9.9.1靜態數據成員280 9.9.2靜態成員函式282 9.10友元285 9.10.1友元函式285 9.10.2友元類289 9.11類模板290 習題294 第10章運算符重載297 10.1什麼是運算符重載297 10.2運算符重載的方法299 10.3重載運算符的規則302 10.4運算符重載函式作為類成員函式和友元函式303 10.5重載雙目運算符307 10.6重載單目運算符311 10.7重載流插入運算符“<<”和流提取運算符“>>”314 10.7.1重載流插入運算符“<<”314 10.7.2重載流提取運算符“>>”316 10.8有關運算符重載的歸納 318 10.9不同類型數據間的轉換319 10.9.1標準類型數據間的轉換319 10.9.2用轉換構造函式進行不同類型數據的轉換320 10.9.3類型轉換函式321 習題327 第4篇面向對象的程式設計 第11章繼承與派生331 11.1繼承與派生的概念331 11.2派生類的聲明方式334 11.3派生類的構成334 11.4派生類成員的訪問屬性336 11.4.1公用繼承337 11.4.2私有繼承339 11.4.3保護成員和保護繼承342 11.4.4多級派生時的訪問屬性346 11.5派生類的構造函式和析構函式347 11.5.1簡單的派生類的構造函式347 11.5.2有子對象的派生類的構造函式351 11.5.3多層派生時的構造函式354 11.5.4派生類構造函式的特殊形式356 11.5.5派生類的析構函式356 11.6多重繼承357 11.6.1聲明多重繼承的方法357 11.6.2多重繼承派生類的構造函式357 11.6.3多重繼承引起的二義性問題360 11.6.4虛基類363 11.7基類與派生類的轉換368 11.8繼承與組合371 11.9繼承在軟體開發中的重要意義373 習題374 第12章多態性與虛函式379 12.1多態性的概念379 12.2一個典型的例子380 12.3利用虛函式實現動態多態性385 12.3.1虛函式的作用385 12.3.2靜態關聯與動態關聯389 12.3.3在什麼情況下應當聲明虛函式391 12.3.4虛析構函式391 12.4純虛函式與抽象類393 12.4.1純虛函式393 12.4.2抽象類393 12.4.3套用實例394 習題400 第13章輸入輸出流401 13.1C++的輸入和輸出401 13.1.1輸入輸出的含義401 13.1.2C++的I/O對C的發展——類型安全和可擴展性401 13.1.3C++的輸入輸出流402 13.2標準輸出流407 13.2.1cout,cerr和clog流407 13.2.2標準類型數據的格式輸出409 13.2.3用流成員函式put輸出字元412 13.3標準輸入流414 13.3.1cin流414 13.3.2用於字元輸入的流成員函式414 13.3.3istream類的其他成員函式416 13.4對數據檔案的操作與檔案流419 13.4.1檔案的概念419 13.4.2檔案流類與檔案流對象420 13.4.3檔案的打開與關閉421 13.4.4對ASCII檔案的操作423 13.4.5對二進制檔案的操作428 13.5字元串流433 習題438 第14章C++工具440 14.1異常處理440 14.1.1異常處理的任務440 14.1.2異常處理的方法441 14.1.3在函式聲明中進行異常情況指定448 14.1.4在異常處理中處理析構函式448 14.2命名空間450 14.2.1為什麼需要命名空間451 14.2.2什麼是命名空間454 14.2.3使用命名空間解決名字衝突456 14.2.4使用命名空間成員的方法458 14.2.5無名的命名空間460 14.2.6標準命名空間std460 14.3使用早期的函式館461 習題462 參考文獻467 |
教學資源
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《C++程式設計題解和上機指導(第3版)》 | 9787302408420 | 清華大學出版社 | 2015.08.01 | 譚浩強 |
《C++程式設計實踐指導》 | 9787302110873 | 清華大學出版社 | 2005.07.01 | 譚浩強 |