《新編計算機類本科規劃教材:面向對象程序設計與C++語言》討論面向對象程序設計的基本概念,以及使用Visual C++進行Windows用戶界面設計的基本方法。《新編計算機類本科規劃教材:面向對象程序設計與C++語言》的內容主要包括:C++語言基礎、面向對象程序設計、類和對象、友元和運算符重載、繼承、運行時的多態性和抽象類、模板、異常處理、I/O流類庫、MFC編程、對話框及常用控件。《新編計算機類本科規劃教材:面向對象程序設計與C++語言》的所有例子都用Visual C++ 6.0調試通過。
《新編計算機類本科規劃教材:面向對象程序設計與C++語言》既可作為高等院校計算機等專業面向對象程序設計課程的教材,也可作為從事計算機開發和應用的工程技術人員的自學參考書。
第1章 C++語言基礎
1.1 數據類型
1.1.1 基本數據類型
1.1.2 枚舉類型
1.1.3 結構體
1.2 基本語句
1.2.1 賦值語句
1.2.2 自加減表達式語句
1.2.3 分支語句
1.2.4 循環語句
1.2.5 流程控制語句
1.3 變量
1.3.1 變量的定義方法
1.3.2 const類型限定符
1.3.3 函數形式的變量類型轉換
1.4 函數
1.4.1 返回值
1.4.2 輸入型參數
1.4.3 輸出型參數
1.4.4 系統庫函數和用戶自定義函數
1.4.5 函數原型
1.4.6 內聯函數
1.4.7 帶默認參數的函數
1.4.8 函數重載
1.5 指針和引用
1.5.1 指針變量
1.5.2 引用變量
1.6 自定義語句
1.7 程序預處理
1.8 new和delete運算符
1.9 輸入和輸出
1.1 0名字空間
習題1
第2章 面向對象程序設計
2.1 從面向過程到面向對象
2.1.1 設計實例對比
2.1.2 從面向過程到面向對象
2.2 面向對象技術的基本概念
2.2.1 類
2.2.2 實例
2.2.3 消息
2.3 面向對象技術的基本特征
2.3.1 抽象性
2.3.2 封裝性
2.3.3 繼承性
2.3.4 多態性
2.4 面向對象的軟件開發
2.4.1 面向對象分析
2.4.2 面向對象設計
2.4.3 面向對象實現
2.5 面向對象程序設計的優點
習題2
第3章 類和對象
3.1 類
3.1.1 類的定義
3.1.2 成員變量
3.1.3 構造函數和類的實例化
3.1.4 成員函數和對象的消息
3.1.5 析構函數
3.1.6 const修飾符
3.1.7 成員函數重載
3.2 對象
3.3 對象成員變量
3.3.1 整體-部分對象模式和子對象
3.3.2 子對象和構造函數設計
3.3.3 構造函數和析構函數自動調用過程
3.4 內部類
3.5 static成員
3.6 自引用對象指針this
3.7 抽象過程與類
3.8 設計舉例——銀行貸記卡系統
習題3
第4章 友元和運算符重載
4.1 友元的概念
4.2 定義友元的方法
4.3 運算符重載
4.3.1 運算符重載的定義和規定
4.3.2 運算符重載為類的成員函數
4.3.3 運算符重載為類的友元函數
4.3.4 兩種運算符重載方法的比較
4.4 設計舉例
4.4.1 數組類設計
4.4.2 字符串類設計
習題4
第5章 繼承
5.1 面向對象的重要特征:繼承性
5.2 繼承
5.2.1 基類、派生類和保護成員
5.2.2 派生類的定義
5.2.3 派生類的3種繼承方式
5.2.4 派生類的基類子對象
5.2.5 派生類的析構函數
5.2.6 派生類與基類的關系
5.3 賦值兼容規則
5.4 派生類對基類成員函數的覆蓋
5.5 多重繼承
5.5.1 多重繼承的意義
5.5.2 多重繼承的設計方法
5.5.3 多重繼承的二義性問題
5.5.4 虛基類
5.6 設計舉例
5.6.1 圖書館信息——公有繼承舉例
5.6.2 鏈式堆棧——私有繼承舉例
習題5
第6章 運行時的多態性和抽象類
6.1 面向對象的重要特征:多態性
6.2 運行時的多態性
6.2.1 虛函數和運行時的多態性
6.2.2 動態綁定
6.2.3 虛函數和派生類對基類成員函數覆蓋的區別
6.2.4 虛析構函數
6.3 抽象類
6.4 設計舉例
習題6
第7章 模板
7.1 參數多態性和模板
7.1.1 參數多態性
7.1.2 模板
7.2 類模板
7.3 函數模板
習題7
第8章 異常處理
8.1 異常和異常處理
8.1.1 異常的基本類型
8.1.2 傳統的異常處理方法及其問題
8.2 C++語言的異常處理方法
8.2.1 基本的異常處理方法
8.2.2 多個異常的處理方法
8.3 異常類的設計
8.4 異常拋出和處理的兩種方式
習題8
第9章 I/O流類庫
9.1 基本概念
9.2 C++的基本流類結構
9.3 istream類和ostream類
9.4 格式控制
9.4.1 格式控制成員函數
9.4.2 操作符
9.5 文件的讀/寫
9.5.1 文件的打開和關閉
9.5.2 文本文件的讀/寫
9.5.3 二進制代碼文件的讀/寫
9.5.4 隨機訪問文件
9.6 可流類
習題9
第10章 MFC編程
10.1 MFC體系結構
10.2 用MFCAppWizard自動生成Windows程序
10.2.1 應用程序框架
10.2.2 MFC消息映射
10.2.3 使用ClassWizard工具
10.3 文檔/視圖結構
10.3.1 文檔模板類
10.3.2 文檔類
10.3.3 視圖類
10.4 MFCWindows應用程序典型執行過程
10.4.1 Windows應用程序執行過程
10.4.2 MFCWindows應用程序執行過程
習題10
第11章 對話框及常用控件
11.1 對話框的創建與使用
11.1.1 對話框的創建
11.1.2 對話框的使用
11.1.3 對話框的銷毀
11.1.4 對話框數據交換和驗證機制
11.2 MFC通用對話框
11.2.1 文件對話框
11.2.2 字體對話框
11.2.3 顏色對話框
11.3 常用控件
11.3.1 靜態文本控件
11.3.2 組框控件
11.3.3 編輯框控件
11.3.4 按鈕控件
11.3.5 列表框控件
11.3.6 組合框控件
11.4 簡單數據類型
11.4.1 CString類
11.4.2 CTime類
11.4.3 CPoint類
11.4.4 CRect類
11.4.5 CSize類
習題11
參考文獻
面向對象程序設計是目前軟件開發的主流方法。從面向對象分析到面向對象設計的過程,以及從面向對象設計到面向對象實現的過程具有平滑無縫過渡的性質,這是面向對象方法區別于其他傳統的軟件開發方法的一個重要特點。
2.5面向對象程序設計的優點
在2.1.2節曾指出,用面向過程程序設計方法進行軟件開發存在很多問題,主要表現為:①軟件模塊重用難;②軟件系統功能擴展難;③軟件維護難。面向對象程序設計技術可以有效地解決這些方面的問題。
面向對象程序設計具有重用性好、擴展性好和維護性好的優點。
1.重用性
重用性是面向對象程序設計的核心思想所在。面向對象程序設計的抽象性、封裝性、繼承性和多態性特點,都首先圍繞著軟件模塊的重用性這個焦點問題,并為之服務。
可重用軟件模塊要求具有以下基本特點。
①結構完整,邏輯嚴謹,功能明確,模塊獨立。
②可移植性好,可方便地在各種不同的軟硬件環境下,以及各種不同的應用程序中使用。
③具有良好的與外界交互和通信的功能。
④具有良好的與外界協同工作的能力。
面向對象程序設計的抽象性使得所設計的類能抓住事物的本質特征,因而具有普遍性,具有普遍性的類模塊自然被重用的可能性大;封裝性使得設計的類有對外部隔離的內部結構,但提供了與外部交互和通信的接口,外部程序不能隨意影響類的內部結構;繼承性使得一個新類可以利用一個已經存在類的資源,這本身就是軟件重用;多態性使得設計的類具有靈活性,這種靈活性使得所設計的類的抽象性更強,因而重用性也更強。
2.擴展性
現代應用軟件的更新換代越來越快,主要原因有二:第一,用戶業務發展變化引起的應用軟件功能修改;第二,計算機軟硬件發展造成的軟硬件升級。應用軟件要能很好地跟上這種發展變化,就需要具有良好的擴展性,要能方便、快速、正確地進行應用軟件的功能擴展。
面向對象程序設計的擴展性主要體現在它從分析到設計、再到實現整個過程的一致性上。抽象地看,面向對象程序設計的整個設計過程是:分析過程建立起基本的框架結構,設計過程在框架內加入具體的細節內容,實現過程用某種高級程序設計語言實現所有細節內容。
……