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