C++面向對象程序設計

-
【作 者】李素若 杜華兵
【I S B N 】978-7-5170-0857-6
【責任編輯】李 炎
【適用讀者群】本專通用
【出版時間】2013-06-14
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】316
【千字數】487
【印 張】19.75
【定 價】¥35
【叢 書】21世紀高等學校精品規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
C++近年來已成為國內外廣泛學習和使用的現代計算機語言,國內許多高校已陸續開設了C++程序設計課程。本書是為已有C語言基礎的讀者編寫的,較詳盡地講述了C++面向對象程序的基本特性,包括類、對象、派生類、繼承、多態性、虛函數、模板、異常處理、流類庫等。全書提供了大量實例、習題使讀者能深刻理解并領會面向對象程序設計的特點和風格,方便老師教課及學生學習。
本書配套教材《C++面向對象程序設計習題解答及上機指導》也同步出版,包含與主教材各章內容相配合的習題解答參考、VC ++ 6.0上機操作和11個精心設計的實驗,每個實驗均包括實驗目的、實驗內容、實驗指導等內容,兩本書配套使用可以更為全面地掌握C++程序設計這門課程。
本書內容全面,例題豐富,概念清晰,循序漸進,易于學習,強調應用,以提高編程能力為目標。本書可以作為應用型本科院校計算機相關專業的學生及高職高專學生學習C++程序設計課程的教材,也可作為C++語言自學者的教材或從事計算機軟件開發人員的參考書。
本書在內容處理上,既注意反映電氣控制領域的最新技術,又注意專科學生的知識和能力結構,吸收和借鑒了各地高等職業技術學院教學改革的成功經驗,同時參照了勞動部對技能等級考試的考核要求。
本書以綜合項目-分解任務-具體步驟的模式組織內容,以加強基礎知識、重視實踐技能、培養動手能力為指導思想,強調理論聯系實際,注重培養學生的動手能力、分析和解決實際問題的能力,以及工程設計能力和創新意識,體現理實一體化教材的特色。
隨著面向對象程序設計方法的不斷普及和應用,學習和掌握C++語言已經成為許多計算機專業工作者和廣大計算機應用人員的迫切需要。學好C++,可以很容易地觸類旁通其他語言,如Java和C#等。C++架起了通向強大、易用、真正的軟件開發應用的橋梁。
C++語言是在C語言基礎上擴充了面向對象機制而形成的一種面向對象程序設計語言,它除繼承了C語言的全部優點和功能外,還支持面向對象程序設計。C++現在已成為介紹面向對象程序設計的首選語言。學習C++不僅可以深刻理解并領會面向對象程序設計的特點和風格,掌握其方法和要領,而且可以使讀者掌握一種十分流行和實用的程序設計語言。
本書結構是:首先介紹面向對象程序設計理論的基本概念,讓讀者從理論上理解面向對象程序設計與結構化程序設計的不同。然后介紹C++對C語言的擴充,最后介紹了C++面向對象程序設計的基本方法。本書直接介紹面向對象的程序設計并貫穿始終,力求讓讀者盡快地建立起面向對象編程的思想。使讀者不僅學會一門程序設計語言,還能初步掌握面向對象的程序設計方法。
本教材共分8章,第1章概述了面向對象程序設計的基本概念。第2章介紹了C++對C語言在非面向對象方面的擴充。第3章詳述了類與對象定義及應用,以及使用過程中應注意的問題。第4章介紹了C++類的繼承性。第5章介紹了C++類的多態性。第6章介紹了運算符重載。第7章介紹模板及C++異常處理機制,第8章介紹了C++流類庫及輸入和輸出。
在本書的編寫中,編者結合自己的教學和編程實踐經驗,通過生動、通俗易懂的語言并結合編程實例來講解各個知識點,便于讀者理解和掌握。本書中的所有例子都在Visual C++ 6.0環境中運行通過。
本書由李素若、杜華兵擔任主編,任正云、琚輝、陳萬華、張牧擔任副主編,全書第1、2、4、8章由李素若編寫,第3章由任正云、琚輝共同編寫,第5章由張牧編寫,第6章由杜華兵編寫,第7章由陳萬華編寫,全書由李素若統稿。參加本書編寫大綱討論的教師還有嚴永松、游明坤、胡秀、賀體剛等。
由于編者水平有限,加之時間倉促,書中難免有疏漏之處,敬請廣大讀者批評指正,以使本書質量得到進一步提高。
編 者
2013年2月
第1章 面向對象程序設計概述 1
1.1 什么是面向對象程序設計 1
1.1.1 新的程序設計范型 1
1.1.2 面向對象程序設計概念 2
1.1.3 面向對象設計的基本特征 4
1.2 為什么要使用面向對象的程序設計 8
1.2.1 傳統程序設計方法的局限性 8
1.2.2 面向對象程序設計的主要優點 9
1.3 面向對象程序設計語言 10
1.3.1 面向對象程序設計語言的發展概況 10
1.3.2 幾種典型的面向對象程序設計語言 12
習題一 13
第2章 C++概述 14
2.1 C++起源和特點 14
2.1.1 C++的起源 14
2.1.2 C++的特點 15
2.2 C++源程序的構成 15
2.2.1 一個簡單的C++示例程序 15
2.2.2 C++程序的結構特點 16
2.3 C++對C的擴充 17
2.3.1 注釋與續行 17
2.3.2 C++的輸入輸出流 18
2.3.3 用const定義常變量 21
2.3.4 函數原型聲明 23
2.3.5 函數重載 24
2.3.6 帶有缺省參數的函數 26
2.3.7 變量的引用 27
2.3.8 內聯函數 34
2.3.9 作用域標識符:: 36
2.3.10 靈活的局部變量定義 37
2.3.11 結構名、聯合名和枚舉名可作為
類型名 37
2.3.12 強制類型轉換 38
2.3.13 字符串變量 38
2.3.14 new和delete 41
2.4 C++編寫和實現 42
2.5 關于C++上機實踐 44
習題二 44
第3章 類和對象 48
3.1 類與對象的基本概念 48
3.1.1 從結構到類 48
3.1.2 類的定義 50
3.1.3 成員函數的定義 52
3.1.4 對象的定義及使用 54
3.1.5 類的作用域和類成員的訪問屬性 57
3.2 構造函數與析構函數 59
3.2.1 對象的初始化和構造函數 59
3.2.2 用參數初始化列表對數據成員初
始化 63
3.2.3 構造函數的重載 65
3.2.4 帶默認參數的構造函數 66
3.2.5 析構函數 68
3.3 對象數組和對象指針 71
3.3.1 對象數組 71
3.3.2 對象指針 74
3.3.3 this指針 79
3.4 向函數傳遞對象 81
3.4.1 使用對象作為函數參數 81
3.4.2 使用對象指針作為函數參數 82
3.4.3 使用對象引用作為函數參數 83
3.5 對象的賦值和復制 84
3.5.1 對象賦值 84
3.5.2 對象復制 85
3.6 靜態成員 91
3.6.1 靜態數據成員 91
3.6.2 靜態成員函數 94
3.7 友元 97
3.7.1 友元函數 97
3.7.2 友元類 101
3.8 類的組合 102
3.9 常類型 107
3.9.1 常引用 107
3.9.2 常對象 108
3.9.3 常對象成員 109
習題三 111
第4章 派生和繼承 115
4.1 繼承與派生的概念 115
4.1.1 什么是繼承和派生 115
4.1.2 派生類的聲明 117
4.1.3 派生類的構成 118
4.1.4 基類成員在派生類中的訪問屬性 119
4.1.5 派生類對基類成員的訪問規則 120
4.2 派生類的構造函數和析構函數 128
4.2.1 派生類構造函數和析構函數的
執行順序 128
4.2.2 派生類構造函數和析構函數的
定義規則 129
4.3 調整基類成員在派生類中的訪問屬性
的其他方法 134
4.3.1 同名成員 134
4.3.2 訪問聲明 135
4.4 多重繼承 138
4.4.1 多重繼承派生類的聲明 138
4.4.2 多重繼承派生類的構造函數與析構
函數 140
4.4.3 多重繼承派生類二義性問題 142
4.5 虛基類 144
4.5.1 虛基類的概念 144
4.5.2 虛基類的初始化 146
4.5.3 虛基類應用舉例 148
4.6 基類與派生類對象之間的賦值兼容關系 150
4.7 繼承與組合 152
習題四 155
第5章 多態性和虛函數 163
5.1 多態性概述 163
5.1.1 多態的分類 163
5.1.2 多態的實現 164
5.2 虛函數 165
5.2.1 為什么引入虛函數 165
5.2.2 虛函數的定義和使用 166
5.2.3 虛函數與重載函數的關系 168
5.2.4 多繼承與虛函數 169
5.2.5 虛析構函數 172
5.3 純虛函數和抽象類 174
5.3.1 純虛函數 174
5.3.2 抽象類 176
5.4 程序舉例 177
習題五 184
第6章 運算符重載 192
6.1 運算符重載概述 192
6.1.1 運算符重載函數的定義 192
6.1.2 運算符重載的規則 194
6.2 運算符重載函數的兩種形式 195
6.2.1 友元運算符重載函數 195
6.2.2 成員運算符重載函數 201
6.2.3 友元運算符重載函數與成員運算
符重載函數的比較 205
6.3 幾種常用運算符重載 208
6.3.1 前綴運算符和后綴運算符的重載 208
6.3.2 賦值運算符的重載 210
6.3.3 下標運算符的重載 212
6.3.4 函數調用運算符的重載 214
6.4 類型轉換 215
6.4.1 系統預定義類型間的轉換 215
6.4.2 類類型與系統預定義類型間的轉換 216
習題六 221
第7章 模板與異常 228
7.1 模板的概念 228
7.2 函數模板與模板函數 229
7.2.1 函數模板的說明 230
7.2.2 函數模板的使用 230
7.2.3 用戶定義的參數類型 232
7.2.4 函數模板異常處理 233
7.3 類模板與模板類 235
7.3.1 類模板說明 235
7.3.2 使用類模板 237
7.4 模板應用舉例 239
7.5 異常處理 243
7.5.1 異常處理概述 244
7.5.2 異常處理的方法 244
7.5.3 應用舉例 247
習題七 251
第8章 C++流類庫與輸入輸出 257
8.1 C++為何建立自己的輸入輸出系統 257
8.2 C++流類庫及其結構 259
8.2.1 C++的流 259
8.2.2 流類庫 259
8.3 標準輸入輸出流 262
8.3.1 標準流類 262
8.3.2 格式控制輸入輸出 265
8.3.3 用于輸入輸出的流成員函數 273
8.4 用戶自定義類型的輸入輸出 278
8.4.1 重載輸出運算符“<<” 279
8.4.2 重載輸入運算符“>>” 280
8.5 文件的輸入輸出 281
8.5.1 文件的概念 281
8.5.2 文件流類與文件流對象 282
8.5.3 文件的打開與關閉 282
8.5.4 對文本文件的操作 284
8.5.5 對二進制文件的操作 287
8.6 字符串流 292
8.7 命名空間和頭文件命名規則 295
8.7.1 命名空間 295
8.7.2 頭文件命名規則 300
習題八 301
附錄A C++語言運算符的優先級和結合性 307
附錄B ASCII碼表 308
參考文獻 309
- Python程序設計案例教程(微課版) [主編 石利平 田輝平 余以勝]
- Java面向對象程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實驗指導與實訓(第二版) [主編 倪燃]
- 程序思維與C語言實現 [張祎 王俊海 呂波]
- Python程序設計及實踐教程 [肖朝暉]
- C語言程序設計 [魏琴 劉祖珉 趙仕波 肖陽春]
- C語言程序設計實驗教程 [張小剛 司春景]
- 電氣控制與PLC程序設計(第二版) [胡冠山]
- Java Web項目化設計實踐教程 [邱云 曾陳萍]
- C語言程序設計(第三版) [主編 丁紅 王立新 蔡開立]
- Python數據分析 [主編 馮志輝 趙磊 李放]
- 大學信息技術 [曾翰穎 編著]
- Python程序設計與應用(第二版) [主編 張廣淵]
- 多維視域下的高校籃球教學創新研究 [張利超 李寧 著]
- 創新創業訓練實踐教程 [主編 王日華 陳武 黃喆誠]
- 實用運籌學 [主編 邢育紅 于晉臣]
- 電子技術(第二版) [主編 覃愛娜 李飛]
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- 勞動爭議處理實務 [主編 王秀卿 羅靜]
- 語音識別理論與實踐 [主編 莫宏偉]
- 武術基礎教程 [主編 李代勇 謝志民]
- 畫法幾何與機械制圖習題集(多學時) [主編 趙軍]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- 機械設計基礎(第二版) [主編 田亞平 李愛姣]
- 畫法幾何與機械制圖 [主編 趙軍]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]