C++語言程序設計教程(第4版)
內容描述
C++語言是目前***的程序設計語言之一,它既支持面向過程的結構化程序設計,也支持基於對象的面向對象程序設計。本書依據ANSI C++標準,從面向過程的編程到面向對象的編程方法展開,形成一條自然流暢的主線,同時兩個部分又自成體系,以滿足不同基礎與需求的學習者。
目錄大綱
章 面向對象程序設計與C
1.1 面向對象程序設計
1.1.1 面向對象的基本概念
1.1.2 面向對象的基本特徵
1.1.3 面向對象的程序設計
1.1.4 面向對象的軟件開發
1.2 C++語言程序設計
1.2.1 C++語言的產生
1.2.2 C++語言的特點
1.2.3 C++語言的發展
1.2.4 C++語言的應用
1.3 C++程序開發過程
1.4 C++程序實例
1.4.1 簡單的C++程序
1.4.2 使用名字空間
1.4.3 輸入/輸出簡介
本章小結
習題1
第2章 C++語言基礎
2.1 C++數據類型
2.1.1 C++字符集
2.1.2 C++基本數據類型
2.1.3 數值
2.2 變量與常量
2.2.1 標識符與關鍵字
2.2.2 變量的定義與賦初值
2.2.3 符號常量
2.2.4 常變量
2.3 運算符與表達式
2.3.1 運算符
2.3.2 表達式
2.3.3 類型轉換
2.4 控制結構
2.4.1 判斷
2.4.2 循環
2.4.3 轉移
2.5 函數
2.5.1 函數的定義
2.5.2 函數原型的聲明
2.5.3 函數的調用
2.5.4 內聯函數
2.5.5 函數的重載
2.5.6 常用的C++系統函數
本章小結
習題2
第3章 構造數據類型
3.1 枚舉類型
3.1.1 枚舉類型的定義
3.1.2 枚舉類型的使用
3.2 數組
3.2.1 一維數組的定義與使用
3.2.2 二維數組的定義與使用
3.2.3 多維數組
3.2.4 數組與函數
3.2.5 字符數組與字符串
3.3 指針
3.3.1 指針的定義與使用
3.3.2 指針與字符串
3.3.3 指針與數組
3.3.4 多重指針
3.3.5 動態內存分配
3.3.6 指針與函數
3.3.7 指針常量與常量指針
3.4 引用
3.4.1 引用的定義
3.4.2 引用與函數
3.4.3 常引用
3.5 結構與聯合
3.5.1 結構
3.5.2 聯合
本章小結
習題3
第4章 C++程序的結構
4.1 變量的類型
4.1.1 全局變量與局部變量
4.1.2 變量的存儲類型
4.1.3 變量在內存中的存儲
4.2 標識符的作用域與可見性
4.2.1 函數原型作用域
4.2.2 塊作用域
4.2.3 文件作用域
4.2.4 可見性
4.3 程序的文件結構與編譯預處理命令
4.3.1 文件包含命令#include
4.3.2 不帶參數的宏定義
4.3.3 帶參數的宏定義
4.3.4 條件編譯
4.4 名字空間
本章小結
習題4
第5章 類與對象
5.1 類與對象的概念
5.1.1 從面向過程到面向對象
5.1.2 類的定義
5.1.3 對象的建立與使用
5.1.4 成員的存取控制
5.2 構造函數與析構函數
5.2.1 構造函數
5.2.2 析構函數
5.2.3 拷貝構造函數
5.2.4 淺拷貝與深拷貝
5.3 對象的使用
5.3.1 對象指針
5.3.2 對象引用
5.3.3 對像數組
5.3.4 動態對象
5.3.5 this指針
5.3.6 組合對象
5.4 靜態成員
5.4.1 靜態數據成員
5.4.2 靜態成員函數
5.5 友元
5.5.1 友元函數
5.5.2 友元類
5.6 常成員與常對象
5.6.1 函數實參的保護
5.6.2 常對象
5.6.3 常數據成員
- 常成員函數
5.7 對象的內存分佈
5.7.1 對象的內存空間的分配
5.7.2 對象的內存空間的釋放
本章小結
習題5
第6章 繼承與派生
6.1 繼承與派生的概念
6.1.1 繼承的概念
6.1.2 派生類的實現
6.1.3 繼承與組合
6.2 繼承的方式
6.2.1 公有繼承
6.2.2 私有繼承
6.2.3 保護繼承
6.3 派生類的構造與析構
6.3.1 派生類構造函數的定義
6.3.2 單繼承的構造與析構
類型兼容
6.5 多繼承
6.5.1 多繼承的構造與析構
6.5.2 二義性問題
6.6 虛基類
6.6.1 虛基類的定義
6.6.2 虛基類的構造與析構
本章小結
習題6
第7章 多態性
7.1 多態性概述
7.2 運算符重載
7.2.1 運算符重載機制
7.2.2 運算符重載規則
7.2.3 重載為類的友元函數
7.2.4 重載為類的成員函數
7.2.5 典型運算符重載
7.3 虛函數
7.3.1 靜態聯編與動態聯編
7.3.2 虛函數的定義與使用
7.3.3 虛析構函數
7.4 抽像類
7.4.1 純虛函數
7.4.2 抽像類與具體類
7.4.3 對象指針數組
本章小結
習題7
第8章 模板
8.1 模板簡介
8.2 函數模板
8.3 類模板
8.3.1 類模板的定義
8.3.2 類模板的實例化
8.3.3 默認模板參數
8.4 模板編程
8.4.1 棧類模板
8.4.2 鍊錶類模板
本章小結
習題8
第9章 STL編程
9.1 STL編程思想
9.2 STL容器
9.2.1 順序容器
9.2.2 關聯容器
9.3 STL算法
9.4 STL函數對象
本章小結
習題9
0章 輸入/輸出流與文件系統
10.1 輸入/輸出流的概念
10.2 輸出流
10.3 流的格式控制
10.3.1 格式控制標誌
10.3.2 格式縱符
10.3.3 格式控製成員函數
10.4 輸入流
10.5 數據流的錯誤偵測
10.6 文件的輸入/輸出
10.6.1文件的創建
10.6.2文本文件的輸出
10.6.3二進製文件的輸出
10.6.4文本文件的輸入
10.6.5二進製文件的輸入
10.6.6文件指針的使用
本章小結
習題10
第11章string類字符串處理
11.1string類對象的定義
11.2string類成員函數
11.3string類的操作符
11.4string類串位置指針
11.5string類串與C風格字符串的轉化
本章小結
習題11
第12章異常處理
12.1異常的概念
12.2C++異常處理機制
12.3異常處理嵌套與重拋異常
12.3.1異常處理嵌套
12.3.2重拋異常
12.4標準異常處理類
本章小結
習題12
第13章C++語言新標準簡介
13.1C++語言標準的發展
13.1.1C++標準發展的歷程
13.1.2C++11標準簡介
13.1.3C++20標準簡介
13.2C++11關鍵字及新語法
13.2.1auto關鍵字
13.2.2decltype關鍵字
13.2.3字面值nullptr
13.2.4範圍for語句
13.3C++11智能指針內存管理
13.3.1獨佔指針unique_ptr
13.3.2共享指針shared_ptr
13.3.3weak_ptr指針
13.4Lambda表達式
13.5右值引用與移動語義
13.5.1左值與右值
13.5.2左值引用與右值引用
13.5.3移動語義
13.5.4完美轉發
13.6C++11新增容器
13.6.1array與forward_list
13.6.2std∷forward_list
13.6.3無序容器
13.6.4元組 std∷tuple
本章小結
附錄A數值的機內表示
A.1數值的各種進製表示形式
A.2整數的機內表示
A.3小數的機內表示
附錄BC++語言中的關鍵字(保留字)
附錄C運算符優先級表
附錄DASCII碼字符集
附錄EGB 2312—80漢字字符集
附錄FGBK漢字字符集
參考文獻
作者介紹
沈顯君,博士,華中師範大學計算機學院教授,碩士生導師。 2000年畢業於華中師範大學計算機科學系,獲計算機應用技術工學碩士學位,同年畢業留校任教。 2004年~2007年在武漢大學軟件工程國家重點實驗室攻讀博士學位,獲計算機軟件與理論工學博士學位。發表論文40多篇,其中被SCI/EI檢索30餘篇。