前言
本書是關于C++的,還是關于Visual C++的呢
本書特點
本書的讀者范圍
本書的編排
關于附帶的磁盤
本書中的圖標
C++因何得名
第一部分 使用Visual C++
第一章 Visual C++軟件包中有什么
有時候,小包裝里也有好東西
啟動一個上千行程序的編譯器
調試器
對話、菜單和位圖
集成
建立在一個強大的應用框架基礎上
對于這些庫你永遠不必付過期罰款
Maxwell Smart實用工具
在環(huán)境中獲得信息的正確方式
幫你起步的范例程序
第二章 安裝Visual C++
你有足夠的剩余空間嗎
啟動安裝程序
注冊
典型安裝(或者是怎樣立刻把磁盤裝滿)
最小安裝
骨架安裝(需要CD)
個人化的自定義安裝
關于“我將不會常用MFC或者根本不用”的安裝
但我不需要任何MFC
關于“我不需要Maxwell Smart實用工具”的安裝
關于我不需要Books Online的安裝
關于我不需要ActiveX控件的安裝
預備,各就各位,開始
等一等!我改主意了
如果它不安裝該怎么辦
第三章 生成Windows程序
到了啟動Visual C++的時候了
你要問問自己,我怎樣才能到這兒
偷偷摸摸的預演
我們動身去看看向導
使用AppWizard的前4步
Step1:應用的類型
Step2:數(shù)據(jù)庫支持
Step3:ActvieX支持
Step4:豐富的修飾內容
我想要一個迷人的標題
我想讓它干點什么
開始寫代碼
該運行了
發(fā)生了什么,什么用了這么長時間
如果出了錯該怎么辦
如果它總是在編譯該怎么辦
第四章 被ClassWizard所陶醉
準備好一個Wizard
Wizard始終在類的頂層
改變About框
在對話框中增加新內容
一個新的對話框
給對話框指定一個類
增加新的菜單項目
最后會晤:掛接新對話框
再運行一次
自定義程序
第五章 項目
為什么感到麻煩
項目文件
工作區(qū)和項目
生成一個新的項目
指定有關新項目的細節(jié)
給項目加入文件
在Workspace窗口可做的普通工作
找出誰在依靠你
這樣設計看上去不錯
第六章 編輯器
適合編輯的所有代碼
編輯過程的主角
充滿活力的色彩顯示
再單擊一次鼠標
查找代碼塊
不要小看規(guī)劃表達式匹配
第七章 編譯
只編譯一次就通過是比較難的
語法錯誤
警告
如果編譯器知道有錯誤,為什么不能自己改正它
如果一開始沒有成功,就再編譯、建立、重建
第八章 調試器
語法錯誤與邏輯錯誤的區(qū)別是什么
調試過程的概略介紹
你叫什么名字?你的調試器是什么?這張得象我嗎
以邏輯錯誤的名義停下來
單步運行
當心出錯
可以改變錯誤的變量值
快速查看
如果需要更快呢
糾正邏輯錯誤
開始調試
一大堆邏輯錯誤
程序員、停下來、每個人都看到這里有很多錯誤
我們還在那兒嗎
還是有錯誤
再來一次
可以運行了
清除一個斷點和一個觀察窗口
來一曲調試藍調音樂
調試器的續(xù)篇
第九章 購買?還是瀏覽
瀏覽一個項目
定義和引用:不需字典
這些秘密文字是什么
瀏覽器種類
將瀏覽器放在可以得到的地方
使用源代碼
瀏覽家族樹
縮小查找范圍
別瘋狂地走開——離開就行了
有時會不運行了
第十章 考慮所有的選項
選項
一次改變一個文件
改變一兩個選項
友好地對等環(huán)境
目錄
格式
自定義工具條
第二部分 關于C++的使用
第十一章 了解程序
程序的開始
利用庫文件
如何利用程序解決問題
閱讀自動電唱機程序
第十二章 面向對象編程介紹
面向對象編程是如何進行的
這就是全部優(yōu)點嗎
封裝
繼承
多態(tài)性
第十三章 編程基本知識
在源文件中放入什么
從最基本的程序入手
如何用C++實現(xiàn)顯示輸出
換行表示法
關于cin
彩色注釋
從庫里借一個函數(shù)
Hello World程序
用Viisual C++設計程序
第十四章 數(shù)據(jù)類型
聲明變量類型
基本數(shù)據(jù)類型
其他數(shù)據(jù)類型
類型安全性
常量
音樂實例
第十五章 變量
命名變量
定義變量
變量初始化
第十六章 結構
聲明結構
結構成員的使用
結構嵌套
結構在程序中的應用
結構是不是很酷
第十七章 表達式
運算符
高級運算符
++運算符
>>運算符
<<運算符
布爾表達式
賦值
復雜表達式
運算符的獨立性
位
if條件語句
運算符的運算次序
運算符實例
第十八章 C++的流程
if、for和while三大關鍵詞
if語句
for語句
while關鍵字
求數(shù)的階乘
其他流程控制關鍵詞
switch、case和break關鍵詞
do關鍵詞
goto關鍵詞
第十九章 更加完善的自動電唱機應用
基本原理
自動電唱機程序清單
第二十章 函數(shù)
開放式語句
函數(shù)的定義和調用
形參
函數(shù)返回值
Factorial程序
閱讀含有函數(shù)的程序
變量和名稱作用域
內聯(lián)擴展
信息的存儲
在RMA中存儲信息
在CPU寄存器中存儲信息
信息存儲方式與函數(shù)調用的關系
內聯(lián)擴展
遞歸函數(shù)
省略號在函數(shù)中的使用
缺省初始值
第二十一章 指針
指針的含義
指針的用途
值和地址
未命名的內存
使用指針的具體例子
C++中如何使用指針
程序的地址簿
復引用指針
復引用指針實例
程序清單
改變指針所指的值
改變結構中的值
指針的簡明表示法
new的用法
不要丟失內存中的地址
鏈表實例
工作原理
程序清單
釋放內存
刪除后的指針
GP錯誤
字符串與指針
避免使用void*
關于指針的提示
指針小結
第二十二章 用指針編寫自動電唱機應用
如何加入指針
改進后的新代碼
第二十三章 數(shù)組
如何使用枚舉
使用枚舉時的安全性
cin與枚舉
數(shù)組
數(shù)組元素
數(shù)組初始化
字符串數(shù)組
多維數(shù)組
聲明多維數(shù)組
關于多維數(shù)組的使用方法
第二十四章 用數(shù)組編寫自動電唱機應用
使用數(shù)組后的變化
程序中的其他變化
代碼
第二十五章 作用域和變量
作用域的安全性
作用域規(guī)則
作用域的使用
堆棧
第三部分 完全地面向對象
第二十六章 類的剖析
歡迎來到101類空間
數(shù)據(jù)成員
成員函數(shù)
類的聲明
訪問限制
受保護的訪問
如何生成只讀變量
成員函數(shù)的定義
類的使用
類成員的訪問
從成員函數(shù)訪問成員
類的頭部
以面向對象方式思考Music
類的總結
第二十七章 構造函數(shù)與析構函數(shù)
構造函數(shù)
多構造函數(shù)
將構造函數(shù)置于此處
構造函數(shù)的公共性與私有性
析構函數(shù)
清理自己的垃圾
還要記得清理動態(tài)垃圾
如果類中有類會怎樣呢
如何閱讀面面對象程序
第二十八章 Jukebox++
Jukebox中的類
其余部分進展如何呢
鏈表是如何工作的
總體流程
這就是Jukebox!這就是面向對象!這就是Jukebox++代碼
第二十九章 繼承
類的重用是最經濟的
繼承的方法
Public、Private和Protected的影響機制
重載
從父代最大了限度地獲取
沒有人會懷疑繼承的作用
這一點很重要:指針與派生類
訪問頃的繼承
第三十章 虛函數(shù)與多態(tài)性
如何決定是否需要使用虛函數(shù)
虛函數(shù)的聲明
在C++中虛函數(shù)的使用是必要的
繼承的確認
第三十一章 模板
加入整潔的模板俱樂部
模板方面的工作還有許多
為模板定義成員函數(shù)
使用模板化的類
模板化類的指針的使用規(guī)則
消除某些混亂
放入頭文件
模板化的鏈表程序
代碼
第三十二章 音樂聲音
如何閱讀多文件程序
該程序到底在做什么
FancyJukebox類
PreviewSongList類
鏈表中對象的混合
存儲頭文件中的類聲明
范例程序
第三十三章 I/O流
瞬時文件訪問
還需要了解的內容
有關文件的五點說明
讀取數(shù)字與單詞的快速實例
代碼
闖入流中的特殊部分
為整型設置填充和寬度
讓你的小舟隨著I/O流慢慢行走
第三十四章 異常處理
舊式的錯誤處理
新的、改進的錯誤處理
異常處理的“深加工”
示例
靈活性:異常處理的中間名
異常的拋出是必要的
只不過是語法
易引超混亂的部分示例
錯誤處理類的繼承
異常處理成功的五條規(guī)則
第三十五章 從磁盤讀文件的Jukebox程序
輸入文件
JAZZ.TXT
ROCK.TXT
動作機制
利用流從磁盤上讀取選擇
異常處理
代碼
第三十六章 重載與友元
成員函數(shù)的重載
預定義函數(shù)的重載
運算符的重載
警告:這一部分的確很復雜
在類的內部或外部重載
重載的置入與置出
你不能做什么
友元
友元的作用
如何制成友元并對程序產生影響
第三十七章 Pandora之Jukebox的重載
工作機制
代碼
第四部分 十準則集粹
第三十八章 安裝問題和解決方案
沒有足夠的磁盤空間
安裝到了錯誤的驅動器上
不能訪問CD盤
安裝程序出現(xiàn)奇怪的行為或不能運行
Visual C++的舊版本在代替新版本運行
沒有任何Visual C++的圖標
我的項目失控了
你會得到消息,沒有足夠的資源了
它就是不能用
通??梢杂茫桥紶枙蠫P故障
第三十九章 十種語法錯誤
包含路徑錯
遺漏分號
忘記包含頭文件
忘記更新類聲明
用類名代替變量名
類聲明后面忘記寫(;)
在類定義中忘記寫public:
使用錯誤的變量名
錯把.用成->,的之亦然
遺漏了一個}
第四十章 另外十種語法錯誤
忘記結束注解
使用錯誤的變量類型
作為C語言程序完全可以運行,但現(xiàn)在卻不能編譯
沒有寫void
在頭文件中忘記定義模板成員函數(shù)
在該用的地方沒有用公用構造函數(shù)
在#define后寫上了分號(;)
忘記建立項目文件
磁盤空間不足
真的是亂套了
第四十一 五種撤消方法
在編輯器中輸入或刪除了一些內容,但并不真想這么做
并不真想改變那個選項
保存錯了文件
超出屏幕
第四十二章 程序錯誤的十種修改方法
忘記初始化變量
用=代替了= =
使用了空指針
壞指針
忘記復引用指針
忘記分配內存空間
超出分配的內存空間
不要忽視誤警告
在switch中缺少break語句
被0除
第四十三章 程序錯誤的另外十種修改方法
在循環(huán)體中忘記給計數(shù)器增值
在循環(huán)體中改變了增值的變量
循環(huán)中的錯誤邊界
用錯了變量
數(shù)組的邊界錯誤
[x,y]不是[x][y]
改變了函數(shù)范圍之外的變量或改變了全局變量
在CWnd構造函數(shù)中改變窗口狀態(tài)
向窗口傳遞了錯誤的參數(shù)
文件中的錯誤日期或時間
第四十四章 十大MFC類
CWinApp
CWnd
CDialog
CMDIFrameWnd
CGoolBar
CDialogBar
CStatusBar
CDC
CPen
CBitmap
第四十五章 十大MFC成員函數(shù)
InitInstance
Create
DoModal
MoveWindow
OnCreate
EnalbleDocking
OnPaint
MoveTo
LineTo
TextOut
第四十六章 十個Visual C++范例程序
詞匯表
磁盤安裝說明