《面向?qū)ο蟪绦蛟O計(C++)》綜合考慮了“關于進一步加強高等學校計算機基礎教學意見”中C++語言程序設計基礎的大綱要求,以及中國計算機科學與技術學科教程和計算機學科專業(yè)規(guī)范中關于程序設計基礎、算法和復雜性、程序設計語言、軟件工程領域中的相關知識單元要求,并結(jié)合多年來在面向?qū)ο蟪绦蛟O計和C++語言教學實踐中的經(jīng)驗編寫而成。
《面向?qū)ο蟪绦蛟O計(C++)》以面向?qū)ο蟪绦蛟O計思想和方法為主線,以C++語言為載體,詳細講述面向?qū)ο蟪绦蛟O計與C++語言中的主要內(nèi)容:面向?qū)ο笏枷牒头椒、?shù)據(jù)類型及基本計算、函數(shù)與程序結(jié)構(gòu)、類與對象、運算符重載、模板與STL、繼承與派生、虛函數(shù)與多態(tài)性、C++的I/O流、異常處理等。全書共分為10章,體系編排完整,內(nèi)容結(jié)構(gòu)合理,例題豐富,注重反映C++語言的新規(guī)范、新技術和新發(fā)展。
《面向?qū)ο蟪绦蛟O計(C++)》以培養(yǎng)設計、分析、建模和應用能力為目的,遵循計算機學科專業(yè)規(guī)范要求,適合作為計算機科學與技術及相關專業(yè)的課程教材,也可供讀者自學使用和參考。
面向?qū)ο蟪绦蛟O計思想和方法是現(xiàn)今主流的程序設計方法,它能夠更好地對現(xiàn)實世界中的各種數(shù)據(jù)、概念進行建模和抽象。此外,應用面向?qū)ο蟪绦蛟O計思想和方法,能夠更好地組織和管理大型程序項目,并有利于繼承發(fā)展程序設計領域中的各種杰出的智慧和閃亮的思想,例如各種程序庫和設計模式。
C++語言作為當今最流行的一種高級程序設計語言,它完全兼容C語言,支持結(jié)構(gòu)化程序設計,同時也支持面向?qū)ο蟪绦蛟O計。C++程序設計在運行效率、語法與語義、組件與類庫、代碼與資源等方面都有著其他程序語言所不能比擬的顯著優(yōu)勢。
本書綜合考慮了“關于進一步加強高等學校計算機基礎教學意見”中C++語言程序設計基礎的大綱要求,以及中國計算機科學與技術學科教程和計算機學科專業(yè)規(guī)范中關于程序設計基礎、算法和復雜性、程序設計語言、軟件工程領域中的相關知識單元要求,并結(jié)合多年來在面向?qū)ο蟪绦蛟O計和C++語言教學實踐中的經(jīng)驗編寫而成。
本套教材分為《面向?qū)ο蟪绦蛟O計(C++)》和《面向?qū)ο蟪绦蛟O計(C++)學習與實踐》!睹嫦?qū)ο蟪绦蛟O計(C++)》教材以C++語言為載體,結(jié)合C++語言的各種特性和要點,重點講授面向?qū)ο蟪绦蛟O計的思想和方法!睹嫦?qū)ο蟪绦蛟O計(C++)學習與實踐》是與《面向?qū)ο蟪绦蛟O計(C++)》配套的教材,包括模擬試題、試驗指導、程序調(diào)試基礎三部分。本套教材以面向?qū)ο蠓椒ê虲++語言的學習與實踐為主,重在培養(yǎng)學生的分析、設計、抽象和應用能力。
第1章 面向?qū)ο蟪绦蛟O計概述
1.1 程序設計概述
1.1.1 計算機系統(tǒng)
1.1.2 算法與程序
1.1.3 程序設計
1.2 面向?qū)ο蟪绦蛟O計
1.2.1 面向?qū)ο蟪绦蛟O計的基本特點
1.2.2 面向?qū)ο蟮能浖こ?br />
1.2.3 UML(UnifiodModelingLanguage)
本章小結(jié)
習題1
第2章 數(shù)據(jù)類型及其運算
2.1 基本數(shù)據(jù)類型與基本話算
2.1.1 基本數(shù)據(jù)類型
2.1.2 基本輸入/輸出
2.1.3 表達式與基本運算
2.1.4 應用舉例
2.2 語句與控制結(jié)構(gòu)
2.2.1 語句
2.2.2 控制結(jié)構(gòu)
2.2.3 轉(zhuǎn)向語句
2.2.4 應用舉例
2.3 復合數(shù)據(jù)類型
2.3.1 數(shù)組
2.3.2 指針
2.3.3 引用
2.3.4 字符串
2.3.5 應用舉例
本章小結(jié)
習題2
第3章 函數(shù)與程序結(jié)構(gòu)
3.1 函數(shù)
3.1.1 函數(shù)概述
31.2 C++新增的函數(shù)機制
31.3 函數(shù)嵌套調(diào)用及遞歸調(diào)用
3.1.4 函數(shù)應用
31.5 應用舉例
3.2 存儲類、作用域和程序結(jié)構(gòu)
32.1 變量的存儲類
32.2 標識符的作用域
32.3 編譯預處理
3.2.4 程序的多文件結(jié)構(gòu)
32.5 應用舉例
本章小結(jié)
習題3
第4章 類與對象
4.1 從結(jié)構(gòu)到類
4.1.1 結(jié)構(gòu)類型概述
41.2 結(jié)構(gòu)類型與結(jié)構(gòu)變量定義
4.1.3 結(jié)構(gòu)應用
4.2 類的定義
4.2.1 類的定義
4.2.2 定義對象
4.2.3 訪問類的成員
4.2.4 類的程序結(jié)構(gòu)
4.3 對象的定義
4.3.1 構(gòu)造函數(shù)
4.3.2 析構(gòu)函數(shù)
4.3.3 三個特殊的構(gòu)造函數(shù)
4.3.4 this指針
4,3.5 應用舉例
4.4 類的復合
4.4.1 類的復合
4.4.2 應用舉例
4.5 const關鍵字
4.5.1 常見用法
4.5.2 應用舉例
4.6 new/delete運算符
4.6.1 基本用法
4.6.2 高級用法
4.7 友元和靜態(tài)
4.7.1 友元函數(shù)和友元類
4.7.2 靜態(tài)成員
4.7.3 應用舉例
本章小結(jié)
習題4
第5章 運算符重載
5.1 概述
5.1.1 基本概念
5.1.2 運算符重載的語法規(guī)則
5.1.3 運算符重載的形式
5.2 成員函數(shù)形式的運算符重載
5.2.1 復數(shù)類Complex
5.2.2 有理數(shù)類Rational
5.3 友元函數(shù)形式的運算符重載
5.3.1 友元函數(shù)形式的語法
5.3.2 重載流插入運算符和提取符
5.4 幾個運算符的重載
5.4.1 重載增量/減量運算符
5.4.2 重載下標運算符
5.4.3 重載函數(shù)調(diào)用運算符
5.4.4 重載轉(zhuǎn)換運算符
5.5 綜合應用舉例
本章小結(jié)
習題5
第6章 模板與STL
6.1 模板概述
6.1.1 數(shù)據(jù)類型的參數(shù)化
6.1.2 模板的初認識
6.2 函數(shù)模板
6.2.1 函數(shù)模板的定義
6.2.2 函數(shù)模板的實例化
6.2.3 函數(shù)模板的重載
6.2.4 函數(shù)模板對數(shù)據(jù)類型的需求
6.3 類模板
6.3.1 類模板的定義
6.3.2 類模板的實例化
6.4 STL概述
6.4.1 STL及其組件
6.4.2 常用頭文件
6.5 函數(shù)對象與算法
6.5.1 函數(shù)對象
6.5.2 STL算法
6.6 容器
6.6.1 string類
6.6.2 vector容器類
6.6.3 list容器類
本章小結(jié)
習題6
第7章 繼承與派生
7.1 基本概念
7.1.1 概述
7.1.2 繼承的機制
7.1.3 繼承與復合
7.1.4 繼承的語法
7.1.5 應用舉例
7.2 訪問控制
7.2.1 繼承的三種方式
7.2.2 公有繼承應用舉例
7.3 派生類的構(gòu)造函數(shù)
7.3.1 派生類的構(gòu)造函數(shù)
7.3.2 派生類對象構(gòu)造和析構(gòu)的順序
7.4 幾個問題
7.4.1 沖突:成員名限定法
7.4.2 成員覆蓋:支配規(guī)則
7.4.3 賦值兼容規(guī)則
7.4.4 虛基類
7.4.5 類模板的繼承與派生
7.4.6 應用舉例
本章小結(jié)
習題7
第8章 虛函數(shù)與多態(tài)性
8.1 概述
8.1.1 程序關聯(lián)的兩種方式
8.1.2 問題的引出
8.1.3 多態(tài)性
8.2 虛函數(shù)
8.2.1 虛函數(shù)的定義
8.2.2 虛析構(gòu)函數(shù)
8.2.3 應用舉例
8.3 抽象類
8.3.1 純虛函數(shù)
8.3.2 抽象類
8.3.3 應用舉例
本章小結(jié)
習題8
第9章 C++的I/O流
9.1 概述
9.1.1 流與緩沖區(qū)
9.1.2 ios基類
9.1.3 標準流對象
9.2 標準I/O流
9.2.1 標準輸出流
9.2.2 標準輸入流
9.3 格式化I/O
9.3.1 流格式狀態(tài)標志位
9.3.2 成員函數(shù)
9.3.3 流操縱算子
9.4 文件I/O流
9.4.1 基本概念
9.4.2 文件操作
9.4.3 應用舉例
9.5 字符串I/O流
9.5.1 基本概念
9.5.2 字符串輸出流
9.5.3 字符串輸入流
本章小結(jié)
習題9
第10章 異常處理
10.1 概述
10.2 C++的異常處理
10.2.1 C++異常處理基礎
10.2.2 異常處理的執(zhí)行過程
10.2.3 異常的類型匹配規(guī)則
10.2.4 異常規(guī)范
10.2.5 異常的重新拋出
10.3 異常處理與構(gòu)造函數(shù)和析構(gòu)函數(shù)
10.3.1 異常拋出時局部對象的釋放
10.3.2 在構(gòu)造函數(shù)中拋出異常
10.3.3 在析構(gòu)函數(shù)中拋出異常
10.4 C++標準庫中的異常處理
10.4.1 exception基類
10.4.2 邏輯異常與運行時異常
本章小結(jié)
習題10
參考文獻
第3章 函數(shù)與程序結(jié)構(gòu)
3.1 函數(shù)
3.1.1 函數(shù)概述
在面向過程的結(jié)構(gòu)化程序設計中,函數(shù)是結(jié)構(gòu)化程序的最小模塊,它是程序設計的基本單位。函數(shù)是對處理問題過程的一種抽象,通常在編程中將相對獨立、經(jīng)常被使用的某種功能抽象為函數(shù),它可以被反復地使用,在使用時只關心其功能及用法,而不必關心其功能的具體實現(xiàn)。C++語言全面繼承了C語言的語法,包括函數(shù)的定義及使用方法,因此,在面向?qū)ο蟮某绦蛟O計語言C++中,保留了函數(shù)是程序的組成部分的特征。所以,函數(shù)在C++語言中,同樣是十分重要的,它是面向?qū)ο蟪绦蛟O計中對于某種功能的抽象。函數(shù)在程序設計中,對于代碼重用和提高程序的可靠性是十分重要的,它也便于程序的分工合作和修改維護,從而可以提高程序的開發(fā)效率。
1.函數(shù)分類
從用戶使用的角度來看,c++中的函數(shù)分為兩類:系統(tǒng)函數(shù)和用戶自定義的函數(shù)。
①系統(tǒng)函數(shù),即庫函數(shù)。這是由編譯系統(tǒng)提供的,用戶不必自己定義這些函數(shù),可以直接使用它們。充分利用C++系統(tǒng)函數(shù),可以減少編程的工作量,提高程序的運行效率和可靠性。