前言
面向對象程式設計作為一種主流的程式設計思想和方法,能夠更好地對現實世界中的各種數據、概念、特徵及相互聯繫進行真實的建模和抽象,使得程式設計與實體行為能夠更加接近。此外,基於面向對象程式設計的思想和方法,能夠更好地組織和管理大型程式項目,有利於繼承和發揚程式設計領域中各種傑出的智慧及思想。
C++語言是當前最流行的一種高級程式設計語言,它完全兼容
C語言,既支持結構化的程式設計方法,也支持面向對象的程式設計方法。與其他程式設計語言相比,C++語言在運行效率、語法及語義、組件及類庫、代碼與資源等方面都有著顯著的優越性。因此,學好C++,很容易在一個較高平台上架設強大、易用的套用軟體。
案例教學是計算機課程教學最有效的方法之一。本書圍繞教學內容組織案例,對學生的知識和能力訓練具有較強的針對性。全書共分為9章,可看成三部分:第一部分(第1、2章),介紹了面向對象程式設計基礎知識,重點討論了面向對象程式設計的基本概念和特點,以及C++對C的擴充;第二部分(第3~5章),介紹了基於對象的程式設計,重點討論了類和對象、特殊
函式和成員、
運算符重載;第三部分(第6~9章),介紹了面向對象程式設計,重點討論了繼承與派生、多態性與虛函式、C++的I/O流、異常處理。此外,書中有兩個附錄,分別是“關鍵字”和“實驗指導”。書中的所有程式都在VC++ 6.0環境下調試通過。
C++面向對象程式設計是實踐性很強的課程,本書注重理論與實踐相結合,每章都給出了不同層次、不同難度的思考題。通過習題與實訓,使學生掌握所學知識,並能靈活運用所學知識解決實際問題。教師可根據學時數、專業和學生的實際情況適當取捨,部分內容可安排自學。
本書由肖守柏、金歡、萬磊、劉燕編著。其中,肖守柏編寫了第2、5、7章以及附錄B,金歡編寫了第1、4、6、8章以及附錄A,萬磊編寫了第3章、劉燕編寫了第9章。全書由肖守柏負責統稿。
本書適合作為本科、高等職業學校、高等專科學校、成人院校、民辦高校計算機及相關專業的教材,也可供廣大從事計算機軟體工作的科技人員自學參考。
由於編者水平有限,書中難免存在不足之處,敬請廣大同行和讀者批評指正。
目錄
第一部分 面向對象程式設計基礎知識
第1章 初識C++ 1
1.1 面向對象概述 1
1.1.1 什麼是面向對象程式設計 1
1.1.2 面向對象程式設計的特點 3
1.2 “This is a C++ program.”實例 4
1.2.1 C++程式的基本組成 8
1.2.2 C++程式的編寫和實現 10
本章小結 11
本章習題 11
第2章 C++對C的擴充 13
2.1 “書店庫存清單管理”實例 13
2.1.1 C++程式的輸入與輸出 14
2.1.2 用const定義常變數 20
2.2 “學生成績管理”實例 21
2.2.1 函式的相關知識 23
2.2.2 內聯函式 28
2.2.3 函式重載 29
2.2.4 函式模板 30
2.2.5 帶默認參數的函式 31
2.3 “棋盤遊戲”實例 33
2.3.1 引用的基本概念 34
2.3.2 引用作為函式參數 36
2.3.3 引用作為函式返回值 37
2.4 “日期格式的轉換”實例 38
2.4.1 字元串類型相關知識 40
2.4.2 使用字元串類型對象 42
本章小結 44
本章習題 44
第二部分 基於對象的程式設計
第3章 類和對象 46
3.1 “兩線相交”實例 46
3.1.1 類的聲明 49
3.1.2 對象的使用 54
3.1.3 this指針 58
3.2 “個人工資所得稅的計算”實例 58
3.2.1 構造函式 61
3.2.2 析構函式 67
3.2.3 類的組合 73
本章小結 78
本章習題 79
第4章 特殊函式和成員 81
4.1 “網路登錄計數器”實例 81
4.1.1 不同對象間數據的共享 83
4.1.2 靜態數據成員 84
4.1.3 靜態成員函式 86
4.2 “家庭防盜警報系統”實例 90
4.2.1 友元的基本概念 92
4.2.2 友元函式 93
4.2.3 友元類 95
4.3 關鍵字const 96
4.3.1 常對象 97
4.3.2 常對象成員 97
4.3.3 使用const限定指針 100
4.4 “單鍊表的類模板”實例 102
4.4.1 類模板的定義 105
4.4.2 類模板的實例化 106
4.4.3 類模板的模板參數表 107
本章小結 108
本章習題 109
第5章 運算符重載 111
5.1 “複數相加”實例 111
5.1.1 運算符重載的基本概念 113
5.1.2 運算符重載的方法 114
5.1.3 運算符重載的規則 115
5.2 “重載加、減法運算符”實例 116
5.2.1 類成員函式重載運算符 118
5.2.2 友元函式重載運算符 122
5.2.3 轉換運算符重載 125
本章小結 127