C++是一種混合型的程序設計語言,支持面向過程與面向列象的程序設汁方法!吨攸c大學計算機專業(yè)系列教材:C++語言程序設計教程》分別介紹面向過程的c++基礎、面向?qū)ο蟮腸++語肓要素和應用c++開發(fā)的其他機制。面向過程部分總結(jié)C++面向過程的語法點,介紹數(shù)據(jù)類型、流程控制、函數(shù)、數(shù)組及指針,鞏同基礎知識的同時,對c++中引進的流、重載、引用、動態(tài)空間管理進行較為詳盡的講解。面向?qū)ο蟛糠种攸c闡述面向?qū)ο笏枷,分析類、運算符重載、繼承、多態(tài)和流等語法要素,通過淺顯的例子解釋知識點的意義與用法,對重點與難點語法采用大量的實例和圖表來幫助理解,使讀者能“知其然”,并能做到“知其所以然”。應用基礎部分介紹應用c++編程的關鍵技術與高級機制,包括模板、STL、異常以及Windows編程,由于該部分涉及內(nèi)容很多,采用向?qū)竭M行分析案例,使讀者在簡單應用中理解語法機制。本書注重案例設計的合理性,引導讀者理解并應用面向?qū)ο蟪绦蛟O計的思想方法,從應用出發(fā)注重激發(fā)讀者的學習興趣。
《重點大學計算機專業(yè)系列教材:C++語言程序設計教程》特色: ●本著“理解與應用并重”的原則,強調(diào)案例設計的合理性,引導讀者理解并應用面向?qū)ο蟪绦蛟O計的思想和方法,從應用出發(fā)培養(yǎng)學生的學習興趣。 ●對重要的、難懂的知識點結(jié)合實用案例進行循序漸進地剖析,并引入大量簡潔易懂的圖表來幫助理解。 ●將基礎知識與標準模板庫等相結(jié)合,使學生懂得利用已有的模板庫和算法,能夠提高程序的開發(fā)效率和程序的可靠性,為實踐研發(fā)打下基礎。 ●引入Windows編程內(nèi)容,采用向?qū)浇榻B,使學生能夠了解Windows程序設計的思路和應用,進一步增強對面向?qū)ο蟪绦蛟O計的理解。
前言
C++語言是一種典型的面向?qū)ο蟮某绦蛟O計語言,學習C++程序設計語言既要掌握其語法規(guī)則,更要理解面向?qū)ο螅∣bjectOriented,OO)的程序設計思想。只有在理解OO思想的基礎上運用這些語法才能編寫出真正的C++程序,才能夠為后續(xù)專業(yè)課程(如“數(shù)據(jù)結(jié)構(gòu)”、“編譯原理”、“操作系統(tǒng)”和“軟件工程”等)的學習提供支持,從而為軟件開發(fā)工作奠定扎實的基礎。
在筆者多年教學實踐過程中發(fā)現(xiàn),學生對C++面向?qū)ο蟪绦蛟O計的學習往往偏重于基本語法,忽略理解和掌握面向?qū)ο蟮某绦蛟O計思想。主要表現(xiàn)是: 設計程序以完成基本功能為出發(fā)點,仍然采用結(jié)構(gòu)化思想設計程序;盡管程序中定義了類,但沒有體現(xiàn)封裝、繼承、多態(tài)的作用,構(gòu)造的是基于對象而不是面向?qū)ο蟮某绦颉?br /> C++是一個非常全面的程序設計語言,不僅具備面向?qū)ο蟮某R?guī)語言要素,如類、繼承、多態(tài)、流、異常機制等,還包括諸多C++特有的語言要素,如多繼承、復制構(gòu)造、運算符重載、指針、引用、模板等。由于涉及的語法規(guī)則繁多且晦澀難懂,學生很難完全掌握,因此容易導致其畏難情緒。此外,C++教學往往與具體應用脫節(jié),學習語法知識后學生不了解其應用方法,對應用程序開發(fā)無所適從。
基于以上問題,本書本著 “理解與應用并重”的原則,強調(diào)案例設計的合理性,引導讀者理解并應用面向?qū)ο蟪绦蛟O計的思想和方法,從應用出發(fā)培養(yǎng)學生的學習興趣。在講解基本語法規(guī)則之前,先通過淺顯的例子幫助讀者理解該知識點的本質(zhì),正所謂“知其然更需知其所以然”,進而使讀者能夠合理地規(guī)劃程序結(jié)構(gòu)并運用知識點。對重要的、難懂的知識點采用實用案例進行循序漸進的剖析,并引入大量簡潔易懂的圖表來幫助理解。將基礎知識與標準模板庫等相結(jié)合,使學生懂得利用已有的模板庫和算法,能夠提高程序的開發(fā)效率和可靠性,為實際研發(fā)打下基礎。同時,為了培養(yǎng)學生學習興趣,引入Windows編程部分,采用向?qū)浇榻B,讓學生能夠了解Windows程序設計的思路和應用,進一步增強對面向?qū)ο蟪绦蛟O計的理解。
本書由大連理工大學軟件學院軟件基礎教研室組織編寫,在總結(jié)各位教師多年教學經(jīng)驗的基礎上,傾注了C++教學團隊教師大量的心血。其中,由蔣光遠完成第1章、第2章、第3章的編寫;田琳琳完成第4章、第9章以及附錄的編寫;趙小薇完成第5章、第6章、第8章的編寫;于紅完成第7章、第10章的編寫。
這是一本主要面向研究型和教學型大學,針對計算機及相關專業(yè)的“C++程序設計語言”課程的教材,建議讀者最好有一定的C語言程序設計基礎。希望讀者在學習C++語言語法的同時,能夠真正理解和掌握面向?qū)ο蟪绦蛟O計的思想,并運用OO的分析與設計方法開發(fā)應用程序。
鑒于時間倉促,筆者水平有限,書中難免有紕漏,歡迎廣大讀者多提寶貴意見。
編者2011年12月于大連理工大學
第1章 概述
1.1 面向?qū)ο蟮挠蓙?br>1.2 面向?qū)ο蟮乃枷?br>1.3 面向?qū)ο蟮奶卣?br>1.4 C++概述
1.5 C十十程序開發(fā)步驟
習題
第2章 c++基礎
2.1 C++程序結(jié)構(gòu)
2.2 基本數(shù)據(jù)類型及操作
2.2.1 字符集
2.2.2 標識符和關鍵字
2.2.3 運算符和表達式
2.2.4 數(shù)據(jù)類型
2.2.5 輸入與輸出
2.3 流程控制
2.3.1 分支結(jié)構(gòu)
2.3.2 循環(huán)結(jié)構(gòu)
2.3.3 幾種循環(huán)語句比較
2.4 程序結(jié)構(gòu)
2.4.1 函數(shù)定義
2.4.2 函數(shù)分類
2.4.3 函數(shù)調(diào)用和聲明
2.4.4 形式參數(shù)與實際參數(shù)
2.4.5 函數(shù)返回值
2.4.6 函數(shù)重載
2.4.7 函數(shù)默認參數(shù)
2.4.8 函數(shù)遞歸調(diào)用
2.5 數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)訪問
2.5.1 數(shù)組
2.5.2 指針
2.5.3 引用
2.5.4 動態(tài)空間管理
習題
第3章 類與對象
3.1 理解類
3.2 類的定義與實現(xiàn)
3.2.1 類的定義
3.2.2 類的實現(xiàn)
3.3 對象定義及訪問
3.3.1 對象的定義
3.3.2 對象的訪問
3.4 構(gòu)造函數(shù)和析構(gòu)函數(shù)
3.4.1 構(gòu)造函數(shù)
3.4.2 析構(gòu)函數(shù)
3.5 拷貝構(gòu)造函數(shù)
3.5.1 淺拷貝與深拷貝
3.5.2 標記拷貝構(gòu)造
3.5.3 函數(shù)參數(shù)與返回值
3.6 對象數(shù)組
3.7 this關鍵字
3.8 static成員
3.8.1 static數(shù)據(jù)成員
3.8.2 static函數(shù)成員
3.9 const成員和const對象
3.9.1 const數(shù)據(jù)成員
3.9.2 const函數(shù)成員
3.9.3 const對象
3.10 友元函數(shù)和友元類
3.10.1 友元函數(shù)
3.10.2 友元成員函數(shù)
3.10.3 友元類
3.11 類組合關系
3.12 案例分析
……
第4章 運算符重載
第5章 繼承
第6章 多態(tài)
第7章 模板
第8章 異常處理
第9章 輸入輸出操作
第10章 Windows編程
附錄A UML類圖簡介
附錄B 預處理
附錄C 命名空間
參考文獻