第1章 C++基礎
1.1 C++簡史
1.1.1 C語言:現代編程的開端
1.1.2 對C++的需求
1.1.3 C++的誕生
1.2 C++的演化
1.3 C++同Java與C#的關系
1.4 面向對象編程
1.4.1 封裝性
1.4.2 多態(tài)性
1.4.3 繼承性
1.5 第一個簡單程序
1.5.1 鍵入程序
1.5.2 編譯程序
1.5.3 運行程序
1.5.4 逐行講解第一個示例程序
1.6 處理語法錯誤
1.7 另一個簡單的程序
1.8 使用運算符
1.9 讀取鍵盤輸入
1.10 一些輸出選項
1.11 另一種數據類型
1.12 兩條控制語句
1.12.1 if語句
1.12.2 for循環(huán)
1.13 使用代碼塊
1.14 分號與定位
1.15 函數介紹
1.16 C++的庫
1.17 C++的關鍵宇
1.18 標識符
第2章 數據類型和運算符
2.1 數據類型的重要意義
2.2 C++的數據類型
2.2.1 整型數據
2.2.2 字符型數據
2.2.3 浮點型數據
2.2.4 布爾型數據
2.2.5 空型數據
2.3 字面值
2.3.1 十六進制和八進制的字面值
2.3.2 字符串字面值
2.3.3 字符轉義序列
2.4 變量詳解
2.4.1 初始化變量
2.4.2 動態(tài)初始化
2.5 運算符
2.6 算術運算符
2.7 關系運算符和邏輯運算符
2.8 賦值運算符
2.8.1 復合賦值運算符
2.8.2 賦值運算中的類型轉換
2.9 表達式
2.10 表達式中的類型轉換
2.10.1 布爾型的轉換
2.10.2 類型強制轉換
2.11 空格和圓括號
第3章 程序控制語旬
3.1 if語句
3.1.1 條件表達式
3.1.2 嵌套的if語句
3.1.3 if-else-if階梯語句
3.2 switch語句
3.3 for循環(huán)語句
3.3.1 for循環(huán)語句的一些變化
3.3.2 可以缺少的部分
3.3.3 無限 for循環(huán)
3.3.4 無循環(huán)體的循環(huán)
3.3.5 在for語句循環(huán)體內聲明循環(huán)控制變量
3.4 while循環(huán)語句
3.5 do-while循環(huán)
3.6 使用break語句從循環(huán)中退出
3.7 使用 continue語句
3.8 嵌套的循環(huán)
3.9 使用gotO語句
第4章 數組、字符串和指針
4.1 一維數組
4.2 二維數組
4.3 多維數組
4.4 字符串
4.4.1 字符串基本知識
4.4.2 從鍵盤中讀取字符串
4.5 一些字符串庫函數
4.5.1 strcpy函數
4.5.2 strcat函數
4.5.3 strcmp函數
4.5.4 strlen函數
4.5.5 字符串函數實例
4.5.6 使用空終結符
4.6 數組的初始化
4.7 字符串數組
4.8 指針
4.9 指針的概念
4.10 指針運算符
4.10.1 指針的基本類型很重要
4.10.2 通過指針賦值
4.11 指針表達式
4.11.1 指針運算
4.11.2 指針比較
4.12 指針和數組
4.13 字符串常量
4.14 指針數組
4.15 空指針的約定
4.16 多重間接訪問
第5章 函數簡介
5.1 函數的基礎知識
5.1.1 函數的通式
5.1.2 創(chuàng)建函數
5.1.3 使用實際參數
5.1.4 使用 return語句
5.1.5 返回值
5.1.6 在表達式中使用函數
5.2 作用域法則
5.2.1 局部作用域
5.2.2 全局作用域
5.3 將指針和數組傳遞給函數
5.3.1 傳遞指針
5.3.2 傳遞數組
5.3.3 傳遞字符串
5.4 返回指針
5.5 main()函數
5.5.1 argc和 argv:main()函數的參數
5.5.2 傳遞數字命令行參數
5.6 函數原型
5.7 遞歸
第6章 函數詳解
6.1 傳遞參數的方法
6.1.1 C++如何傳遞參數
6.1.2 使用指針創(chuàng)建引用調用
6.2 引用參數
6.2.1 返回引用
6.2.2 獨立引用
6.2.3 使用引用時的幾個限制
6.3 函數重載
6.4 默認的函數參數
6.4.1 默認參數與重載
6.4.2 正確使用默認參數
6.5 函數重載和多義性
第7章 更多數據類型和運算符
7.1 const和 volatile限定符
7.1.1 const限定符
7.1.2 volatile限定符
7.2 存儲類說明符
7.2.1 auto說明符
7.2.2 extem說明符
7.2.3 static變量
7.2.4 register變量
7.3 枚舉
7.4 typedef關鍵字
7.5 按位運算符
7.5.1 AND、OR、XOR和NOT運算符
7.5.2 移位運算符
7.6 ?運算符
7.7 逗號運算符
7.8 多重賦值
7.9 復合賦值
7.10 使用sizeof運算符
7.11 關于優(yōu)先級的小結
第8章 類和對象
8.1 類的基礎知識
8.1.1 類的通式
8.1.2 定義類
8.1.3 向類中添加函數
8.2 構造函數和析構函數
8.2.1 帶參數的構造函數
8.2.2 將一個構造函數添加到Vehicle類中
8.2.3 另一種可以選擇的初始化方法
8.3 內聯函數
8.4 對象數組
8.5 指向對象的指針
8.6 對象引用
第9章 類的洋解
9.1 重載構造函數
9.2 對象賦值
9.3 將對象傳遞給函數
9.3.1 構造函數、析構函數和對象傳遞
9.3.2 通過引用傳遞對象
9.3.3 傳遞對象時的潛在問題
9.4 返回對象
9.5 創(chuàng)建和使用復制構造函數
9.6 友元函數
9.7 結構體和共用體
9.7.1 結構體
9.7.2 共用體
9.7.3 匿名共用體
9.8 This關鍵宇
9.9 運算符重載
9.10 使用成員函數進行運算符重載
9.10.1 順序的重要性
9.10.2 使用成員函數重載一元運算符
9.11 非成員運算符函數
9.11.1 使用友元重載一元運算符
9.11.2 運算符重載的技巧和限制
第10章 繼承、虛函數和多態(tài)性
10.1 繼承基礎
10.2 基類訪問控制
10.3 使用受保護的成員
10.4 構造函數和繼承
10.5 創(chuàng)建多層層次結構
10.6 繼承多個基類
10.7 構造函數和析構函數執(zhí)行的順序
10.8 指向派生類型的指針
10.9 虛函數和多態(tài)性
10.9.1 虛函數基礎知識
10.9.2 繼承虛函數
10.9.3 使用虛函數的原因
10.10 應用虛函數
10.11 純虛函數和抽象類
第11章 C++ I/O系統(tǒng)
11.1 對早期和現代的 C++ I/O進行比較
11.2 C++流
11.3 C++流類
11.4 重載 I/O運算符
11.4.1 創(chuàng)建插入函數
11.4.2 使用友元函數重載插入函數
11.4.3 重載提取函數
11.5 格式化 1/O
11.5.1 使用ios成員函數進行格式化
11.5.2 使用I/O操控符
11.5.3 創(chuàng)建自己的操控符函數
11.6 文件I/O
11.6.1 打開和關閉文件
11.6.2 讀寫文本文件
11.6.3 非格式化和二進制 I/O
11.6.4 讀寫數據塊
11.7 更多的 I/O函數
11.7.1 更多的 get()版本
11.7.2 getline()
11.7.3 檢測 EOF
11.7.4 peek()和 putback()
11.7.5 flush()
11.8 隨機存取
11.9 檢查I/O狀態(tài)
第12章 異常、模板和其他高級主題
12.1 異常處理
12.1.1 異常處理基礎知識
12.1.2 使用多個catch語句
12.1.3 捕獲所有異常
12.1.4 指定由函數拋出的異常
12.1.5 再次拋出異常
12.2 模板
12.2.1 通用函數
12.2.2 具有兩個通用類型的函數
12.2.3 顯式重載通用函數
12.2.4 通用類
12.2.5 顯式的類特化
12.3 動態(tài)分配
12.3.1 初始化分配的內存
12.3.2 分配數組
12.3.3 分配對象
12.4 命名空間
12.4.1 命名空間基礎知識
12.4.2 using語句
12.4.3 匿名命名空間
12.4.4 std命名空間
12.5 靜態(tài)類成員
12.5.1 靜態(tài)成員變量
12.5.2 靜態(tài)成員函數
12.6 運行時類型標識(RTTI)
12.7 強制類型轉換運算符
12.7.1 dynamic-cast
12.7.2 const cast
12.7.3 static cast
12.7.4 reinterpret-cast
12.8 接下來做什么
附錄A 測驗答案
第1章 C++基礎
第2章 數據類型和運算符
第3章 程序控制語句
第4章 數組、字符串和指針
第5章 函數簡介
第6章 函數詳解
第7章 更多數據類型和運算符
第8章 類和對象
第9章 類的詳解
第10章 繼承、虛函數和多態(tài)性
第11章 C++ I/O系統(tǒng)
第12章 異常、模板及其他高級主題
附錄B 預處理器
B.1 #define
B.2 類函數宏
B.3 #error
B.4 #include
B.5 條件編譯指令
B.5.1 #if、#else、#elif和#endif
B.5.2 #ifdef和#ifndef
B.5.3 #undef
B.5.4 使用defined
B.6 #line
B.7 #pragma
B.8 #和##預處理器運算符
B.9 預定義的宏名
附錄C 使用舊版本C++編譯器