《面向對象C++程序設計/普通高等教育“十一五”國家級規劃教材·計算機系列教材》介紹面向對象的基本概念,闡述面向對象程序設計的思想和方法,將面向對象思想滲透到每個章節。
《面向對象C++程序設計/普通高等教育“十一五”國家級規劃教材·計算機系列教材》共10章,主要內容包括緒論、數據類型與程序控制流程、函數、數組與指針、類與對象、繼承、多態、輸入輸出流和異常處理,最后一章為綜合設計,用以培養綜合應用C++的能力。
本書例題豐富,并有運行結果,每章后附有習題,供讀者鞏固提高所學知識。
本書可作為高等院校面向對象程序設計教材,也可供程序愛好者學習參考。
面向對象程序設計語言已成為當今流行的程序設計語言,C++語言是典型的面向對象程序設計語言之一,在全世界都得到了廣泛的應用。
C++語言是從C語言發展而來的具有面向對象特征的程序設計語言。面向對象技術的基本思想是封裝、信息隱藏、繼承與多態。本書在系統闡述C++語言的過程中,將這些思想融入其中,使讀者能夠領悟面向對象思想的真諦。本書既注重語法的講授,強調邏輯嚴謹性,又注重實際應用,通過豐富的例題提高讀者的應用能力。
1. 本書特點
1) 既注重語言語法,又注重語言應用
本書作者針對多年教學中學生的學習難點和易犯錯誤,由淺入深地闡述了C++語法規則和設計技術,既有相當簡單的語法教學示例,也有實際背景的應用案例,循序漸進地將面向對象和軟件工程思想滲透到語言學習中。為提高讀者綜合應用所學知識解決實際問題的能力,專門編寫了綜合設計一章,將本書所涉及的面向對象的封裝、信息隱藏、繼承、多態和軟件工程思想融入一體,通過模擬幾個實際應用的實例,以提高讀者全面運用所學知識的能力。
2) 摒棄灌輸式講述,啟發讀者思維
為了引發讀者發散思維,擺脫灌輸式教學,本書從正反兩方面闡述面向對象的技術特點,在論述面向對象技術對程序設計帶來革命性改良的同時,也說明了此技術夾雜的負面影響。例如,封裝技術降低了程序之間的耦合性,提高了數據訪問的安全性,但也帶來了操作不便和訪問效率的降低,因而引入了友元函數。繼承機制使大規模的代碼重用成為可能,但也帶來了派生類無法擺脫基類無用代碼而使代碼膨脹過大的弊端。
3) 案例豐富,易學易懂
本書精選了大量例題,在每次引出新語法后,緊接著用簡單的語法示例程序進行闡述,然后跟進實際應用案例,使學習者通過示例和案例輕松掌握語法規則,并能夠進行靈活應用。
2. 內容安排
第1章緒論: 介紹面向對象程序設計的特點、C++語言的產生與發展、簡單的C++程序組成、C++程序的編譯環境。
第2章數據類型與程序控制流程: 介紹C++語言的基本數據類型、數據的表示、常量和變量、運算符和表達式,介紹程序的3種基本結構,結構體、共用體和枚舉等構造類型。
第3章函數: 介紹函數的分類、函數的定義和調用、函數的參數傳遞及傳遞方式、函數的嵌套調用和遞歸調用、全局變量和局部變量、變量的存儲類型。介紹引用類型及函數參數的引用傳遞。
第4章數組與指針: 介紹數組的概念、定義及使用、指針變量的定義與使用方法、指向變量的指針、指向數組的指針、指向函數的指針、返回指針的函數、指針數組以及這些指針變量的應用。
第5章類與對象: 主要介紹對象與類的概念、類的定義與對象的創建、類成員的訪問控制、類的構造函數與析構函數、類的信息隱藏、對象的復制、對象數組、指向對象的指針與對象的引用、對象的動態創建、類的組合、字符串類、類的靜態成員、類的友元、類的常數據與常函數成員和常對象。
第6章繼承: 介紹繼承與派生的概念、派生類的聲明與設計、派生類的繼承方式與構造函數、派生類與基類的兼容性、簡單介紹多繼承與虛基類。
第7章多態: 介紹多態的概念、運算符重載、虛函數、純虛函數與抽象類、模板函數和類模板。
第8章輸入輸出流: 介紹輸入輸出流的概念、輸入輸出流類庫、標準輸入輸出流、文件的打開與讀寫操作。
第9章異常處理: 介紹異常處理思想、異常處理方法、聲明函數異常、標準C++異常類、異常處理中對象的析構。
第10章綜合設計: 運用C++的封裝、信息隱藏、繼承、多態與異常處理綜合知識,完成3個應用案例的綜合設計。
本書具體編寫分工: 第1章、第2章、第3章由宋麗華編寫,第5章、第6章、第7章、第9章、第10章由雷鵬編寫,第4章、第8章由張小峰編寫,全書策劃和定稿工作由雷鵬負責。
作為軟件工程專業應用型人才培養的系列教材之一,本書曾作為講義多次印刷,在計算機類、電氣信息類等專業中使用。在此正式出版之際,我們在原講義的基礎上,結合多年的教學實踐,進行了修改,使其更加適合讀者學習。
清華大學出版社的編輯為教材的出版付出了辛勤的汗水,使本書得以及時出版,在此致以衷心的感謝。
限于作者學識水平,書中難免存在不妥之處,我們真誠歡迎讀者提出寶貴建議,批評指正。作者電子郵箱: leipldu@163.com。
編者
2014年7月
第1章緒論
1.1面向對象程序設計的特點
1.1.1面向對象程序設計的基本概念
1.1,2面向對象程序設計的特點
1.2面向對象程序設計語言C++
1.2.1C++語言的產生和發展
1.2.2C++語言的特點
1.3C++程序結構
1.4C++程序開發過程
1.4.1C++程序開發過程
1.4.2VisualC++6.0集成開發環境
1.5小結
習題
第2章數據類型與程序控制流程
2.1關鍵字和標識符
2.1.1關鍵字
2.1.2標識符
2.2基本數據類型
2.3常量與變量
2.3.1常量
2.3.2變量
2.4運算符與表達式
2.4.1算術運算符和算術表達式
2.4.2賦值運算符和賦值表達式
2.4.3關系運算符和關系表達式
2.4.4邏輯運算符和邏輯表達式
2.4.5條件運算符和條件表達式
2.4.6sizeof運算符
2.4.7位運算符
2.4.8逗號運算符和逗號表達式
2.4.9混合運算時數據類型的轉換
2.5輸入輸出簡介
2.5.1輸入操作符
2.5.2輸出操作符
2.5.3常用控制符
2.6程序的基本控制結構
2.6.1if語句
2.6.2if語句的嵌套
2.6.3switch語句
2.6.4循環語句
2.6.5循環嵌套
2.7C++構造類型
2.7.1結構體類型
2.7.2共用體類型
2.7.3枚舉類型
2.8用戶自定義類型
2.9小結
習題
第3章函數
3.1函數的定義與使用
3.1.1函數的定義
3.1.2函數的聲明與調用
3.1.3函數的參數傳遞
3.2函數的嵌套調用和遞歸調用
3.2.1嵌套調用
3.2.2遞歸調用
3.3內聯函數
3.4帶默認形參值的函數
3.5函數重載
3.6變量的作用域和生存期
3.6.1變量的作用域
3.6.2變量的生存期
3.7小結
習題
第4章數組與指針
4.1數組
4.1.1數組的定義與引用
4.1.2數組的初始化
4.1_3數組作為函數參數
4.2指針
4.2.1指針與地址
4.2.2指向變量的指針
42.3指針作為函數參數
4.2.4指向數組的指針
4.2.5指向函數的指針
4.2.6返回指針的函數
4.2.7指針數組與多級指針
4.2.8指向結構體的指針
4.2.9new和delete操作符
4.3字符串
4.3.1用字符數組處理字符串
4.3.2用指向字符串的指針處理字符串
4.3.3用strlng類處理字符串
4.4小結
習題
第5章類與對象
5.1對象與類的概念
5.1.1對象
5.1.2類
5.2類的定義與對象的創建
5.2.1類成員的表示
5.2.2類的定義
5.2.3對象的創建與使用
5.3類成員的訪問控制
5.4類的信息隱藏
5.5對象的初始化與消亡
5.5.1構造函數
5.5.2析構函數
5.6對象的賦值與復制
5.6.1對象的賦值
5.6.2對象的復制
5.6.3復制構造函數
5.7對象數組
5.8指向對象的指針與對象的引用
5.8.1指向對象的指針
5.8.2this指針
5.8.3對象的動態創建與銷毀
5.8.4對象的引用
5.9類的組合
5.9.1組合的概念
5.9.2組合類的構造函數
5.9.3組合類的應用
5.10字符串類
5.11類的靜態成員
5.11.1靜態數據成員
5.11.2靜態函數成員
5.12類的友元
5.12.1友元函數
5.12.2友元類
5.13共享數據的保護
5.13.1常函數成員
5.13.2常對象
5.13.3常數據成員
5.13.4對象的常引用作為函數參數
5.14小結
習題
……
第6章繼承
第7章多態
第8章輸入輸出流
第9章異常處理
第10章綜合設計