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