《C++:面向對象程序設計(第2版)/普通高等教育“十一五”國家級規(guī)劃教材》全面系統(tǒng)地介紹了面向對象程序設計的基本思想、機制、要素和原理,詳細介紹了C++面向對象程序設計技術;對MFC應用程序框架作了專門介紹,力圖在介紹基本原理的同時滿足動手訓練的需要。書后附VisualC++6.O編譯器使用方法和兩套C++面向對象程序設計模擬試題,供讀者學習本課程使用!禖++:面向對象程序設計(第2版)/普通高等教育“十一五”國家級規(guī)劃教材》將C++的基本原理與具體實踐相結合,不僅讓讀者對C++語言本身有深刻的了解,也為讀者迅速掌握流行的VC++程序設計工具打下了良好的基礎。 《C++:面向對象程序設計(第2版)/普通高等教育“十一五”國家級規(guī)劃教材》取材新穎、內容豐富、可讀性強,所設計的示例程序立足于方便讀者觀察C++相關機制的運行過程!
李濤,四川大學教授,博士生導師。長期從事網(wǎng)絡安全方面的研究,在IEEE會刊、中國科學、科學通報、自然科學進展等國內外重要雜志及學術會議發(fā)表論文300多篇,申請及獲準國家發(fā)明專利28項,出版《計算機免疫學》、《網(wǎng)絡安全概論》等學術專著4本,主持完成10多項國家級、省部級重大、重點項目的攻關工作,成果被分別列入國家高技術產(chǎn)業(yè)化示范工程,國家科技成果重點推廣計劃、國家重點新產(chǎn)品等,獲省部級科技進步一等獎4次,二等獎1次,市專利獎2次。被評為教育部新世紀優(yōu)秀人才(首批),國務院政府特殊津貼專家,國家計算機網(wǎng)絡與信息安全專項計劃管理專家,四川省學術和技術帶頭人,成都市有突出貢獻的優(yōu)秀專家。
第1章 C++基礎知識
1.1 C++語言簡介
1.1.1 C++的誕生和發(fā)展
1.1.2 c++的基本特性
1.2 C++對C的擴充
1.2.1 新的輸入輸出方式
1.2.2 注釋、變量聲明與作用域限定符
1.2.3 強制類型轉換與const標識符
1.2.4 函數(shù)原型聲明
1.2.5 內聯(lián)函數(shù)
1.2.6 函數(shù)重載
1.2.7 帶默認參數(shù)的函數(shù)
1.2.8 引用
1.2.9 運算符new和delete
1.2.1 0布爾類型
1.3 C++程序的開發(fā)過程
1.3.1 一個簡單的C++程序
1.3.2 C++程序的開發(fā)
習題1
第2章 C++類和對象
2.1 面向對象程序設計方法概述
2.1.1 面向對象程序設計方法的基本概念
2.1.2 面向對象程序設計方法的基本原理
2.2 類和對象
2.2.1 類的定義
2.2.2 成員函數(shù)的實現(xiàn)
2.2.3 對象的創(chuàng)建
2.2.4 類成員的訪問
2.3 構造函數(shù)和析構函數(shù)
2.3.1 構造函數(shù)
2.3.2 重載構造函數(shù)
2.3.3 帶默認參數(shù)的構造函數(shù)
2.3.4 拷貝構造函數(shù)
2.3.5 析構函數(shù)
2.4 對象數(shù)組
2.5 對象指針
2.5.1 指向對象的指針
2.5.2 this指針
2.6 靜態(tài)成員
2.6.1 靜態(tài)數(shù)據(jù)成員
2.6.2 靜態(tài)成員函數(shù)
2.7 友元關系
2.7.1 友元函數(shù)
2.7.2 友元類
2.8 共享數(shù)據(jù)的保護
2.8.1 常引用
2.8.2 常對象
2.8.3 常成員
2.9 應用實例:員工信息管理系統(tǒng)
習題2
第3章 繼承
3.1 類的繼承與派生
3.1.1 繼承與派生的概念
3.I.2 派生類的定義
3.2 繼承方式
3.2.1 公有繼承
3.2.2 私有繼承
3.2.3 保護繼承
3.3 派生類的構造函數(shù)和析構函數(shù)
3.3.1 派生類的構造函數(shù)
3.3.2 析構函數(shù)
3.4 多繼承
3.4.1 多繼承的聲明
3.4.2 多繼承的構造函數(shù)
3.4.3 多繼承中的二義性問題
3.5 虛基類
3.5.1 虛基類的作用
3.5.2 虛基類的初始化
3.6 組合類
3.6.1 組合類的概念
3.6.2 組合類中的構造函數(shù)
3.7 繼承應用實例
3.7.1 問題描述
3.7.2 完整源程序
3.7.3 運行結果
習題3
第4章 多態(tài)性
4.1 多態(tài)性
4.2 虛函數(shù)
4.2.1 虛函數(shù)的概念
4.2.2 必須使用虛函數(shù)的例子
4.2.3 虛函數(shù)的覆蓋
4.2.4 虛函數(shù)的傳遞性
4.2.5 虛析構函數(shù)
4.3 抽象類
4.3.1 純虛函數(shù)
4.3.2 抽象類
4.3.3 使用抽象類的例子
4.4 函數(shù)重載
4.4.1 成員函數(shù)重載
4.4.2 全局函數(shù)重載
4.4.3 函數(shù)的默認參數(shù)
4.4.4 二義性問題
4.4.5 虛函數(shù)與函數(shù)重載的關系
4.5 運算符重載
4.5.1 運算符重載的意義
4.5.2 運算符重載的規(guī)則
4.5.3 成員和非成員運算符函數(shù)重載
4.5.4 單目和雙目運算符函數(shù)重載
4.5.5 賦值運算符重載和拷貝構造函數(shù)
4.5.6 其他運算符重載
4.5.7 綜合舉例
習題4
第5章 模板
5.1 模板的基本概念和作用
5.2 函數(shù)模板及模板函數(shù)
5.2.1 函數(shù)模板定義及其實例化
5.2.2 重載函數(shù)模板
5.3 類模板及模板類
5.3.1 類模板定義及其實例化
5.3.2 類模板的派生
5.4 模板實例
習題5
第6章 標準模板庫
6.1 標準模板庫概述
6.1.1 標準模板庫發(fā)展簡介
6.1.2 標準模板庫的主要內容
6.2 迭代器
6.2.1 迭代器的起源
6.2.2 迭代器類模板位置
6.2 _3迭代器的編程思想
6.3 函數(shù)對象
6.3.1 從函數(shù)到函數(shù)對象
6.3.2 系統(tǒng)函數(shù)對象類模板
6.4 常用通用容器
6.4.1 vector容器
6.4.2 list容器
6.4.3 deque容器
6.4.4 queue和stack容器
6.5 STL常用算法
6.5.1 遍歷容器算法foreach()
6.5.2 查詢算法find()
6.5.3 排序算法sort()
6.6 應用實例:列車調度
……
第7章 C++輸入/輸出
第8章 C++高級主題
第9章 MFC開發(fā)
附錄
參考文獻
第2章C++類和對象
2.1面向對象程序設計方法概述
面向對象程序設計方法是在結構化設計方法出現(xiàn)很多問題的情況下應運而生的。結構化設計方法求解問題的基本策略是從功能的角度審視問題域,它將應用程序看成實現(xiàn)某些特定任務的功能模塊,其中子過程是實現(xiàn)某項具體操作的底層功能模塊。在每個功能模塊中,用數(shù)據(jù)結構描述待處理數(shù)據(jù)的組織形式,用算法描述具體的操作過程。然而,面對日趨復雜的應用系統(tǒng),這種開發(fā)思路逐漸暴露出它的弱點以及對市場需求的不適應性,于是面向對象程序設計方法應運而生。
2.1.1面向對象程序設計方法的基本概念
1.對象
對象是人們進行研究的任何事物,從最簡單的整數(shù)到復雜的飛機等均可看做對象,它是構成系統(tǒng)的基本單位。它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。比如,在一個商品銷售系統(tǒng)中,商品和顧客可以是對象;在一個交通流量模擬系統(tǒng)中,汽車可以是對象;在抽象的數(shù)據(jù)存儲結構中,堆棧和鏈表也可以是對象。
由于在自然界,任何一個客體都具有兩個要素——屬性和行為,因此一個對象往往是由一組屬性和一組行為共同描述的。例如,一個電源開關可以看做一個對象,則它的外形、顏色和使用電壓都可以認為是該電源開關對象的屬性,而關閉或打開可以認為是電源開關對象的行為。又如,在一個學校的學生管理系統(tǒng)中,學生就是一個主要的對象。學生有學號、姓名、性別、所修課程以及成績等屬性,同時具有選課、考試、查詢成績等行為,因此,這些屬性和行為結合在一起就可以描述出學生這個對象。
對象的每個屬性都具有屬性值,它們結合在一起反映對象的狀態(tài)。就是說,一個對象用一組數(shù)據(jù)值來描述其狀態(tài),而通過行為可以改變其狀態(tài)。例如,某個學生對象的學號為1243041475,姓名為張三,性別為男,成績?yōu)?0,那么“1243041475”就是該對象屬性為“學號”的屬性值,“張三”是“姓名”的屬性值,“男”是“性別”的屬性值,“90”是“成績”的屬性值,以上4個屬性值共同反映了該學生對象的一種狀態(tài)。當然,狀態(tài)是可以改變的,比如通過“考試”這一行為,可以改變“成績”的屬性值。