第1章C++語言概述1
1.1面向對象程序設計的有關概念1
1.1.1面向對象的由來和發(fā)展1
1.1.2面向對象的有關概念2
1.2C++語言是一種面向對象的程序設計語言4
1.2.1C++語言對面向對象程序設計方法的支持4
1.2.2C++語言與C語言的關系5
1.3C++語言的詞法及詞法規(guī)則6
1.3.1C++語言的字符集7
1.3.2單詞及詞法規(guī)則7
1.4C++程序結構的特點9
1.4.1一個 C++語言的示范程序9
1.4.2C++程序的組成部分10
1.43C++程序的書寫格式12
1.5C++程序的實現(xiàn)14
1.5.1C++程序的編輯、編譯和運行14
1.5.2Visual C++ 6.0版本的基本用法16
練習題19
作業(yè)題20
第2章數據類型和表達式23
2.1基本數據類型23
2.2常量和變量25
2.2.1常量25
2.2.2變量28
2.3數組29
2.3.1數組的定義29
2.3.2數組的賦值30
2.3.3字符數組32
2.4枚舉33
2.4.1枚舉類型和枚舉變量33
2.4.2枚舉變量的值34
2.5指針和引用35
2.5.1指針35
2.5.2指針和數組38
2.5.3字符指針43
2.5.4引用45
2.6運算符46
2.6.1算術運算符46
2.6.2關系運算符48
2.6.3邏輯運算符48
2.6.4位操作運算符48
2.6.5賦值運算符49
2.6.6其他運算符50
2.6.7運算符的優(yōu)先級和結合性53
2.7表達式53
2.7.1表達式的種類53
2.7.2表達式的值和類型54
2.7.3表達式中的類型轉換59
2.8類型定義61
2.9結構和聯(lián)合63
2.9.1結構64
2.9.2聯(lián)合67
練習題69
作業(yè)題70
第3章預處理和語句75
3.1預處理功能75
3.1.1文件包含命令76
3.1.2條件編譯命令76
3.1.3宏定義命令79
3.2語句85
3.2.1表達式語句和空語句85
3.2.2復合語句和分程序85
3.3選擇語句86
3.3.1條件語句86
3.3.2開關語句88
3.4循環(huán)語句91
3.4.1while循環(huán)語句91
3.4.2do-while循環(huán)語句92
3.4.3for循環(huán)語句93
3.4.4多重循環(huán)95
3.5轉向語句99
3.5.1goto語句99
3.5.2break語句100
3.5.3continue語句101
練習題102
作業(yè)題102
第4章函數和作用域111
4.1函數的定義和說明111
4.1.1函數的定義格式113
4.1.2函數的說明方法113
4.2函數的調用115
4.2.1函數的值和類型115
4.2.2函數的傳值調用116
4.2.3函數的引用調用118
4.3函數的參數120
4.3.1函數參數的求值順序120
4.3.2設置函數參數的默認值121
4.3.3使用數組作為函數參數122
4.4內聯(lián)函數124
4.4.1內聯(lián)函數引入的原因124
4.4.2內聯(lián)函數的定義方法125
4.4.3使用內聯(lián)函數應注意的事項125
4.5函數重載126
4.5.1參數類型上不同的重載函數126
4.5.2參數個數上不同的重載函數127
4.6函數的嵌套調用和遞歸調用128
4.6.1函數的嵌套調用128
4.6.2函數的遞歸調用129
4.7作用域131
4.7.1標識符的作用域規(guī)則132
4.7.2作用域的種類132
4.7.3關于重新定義標識符的作用域規(guī)定133
4.7.4局部變量和全局變量135
4.7.5內部函數和外部函數138
4.8C++語言的系統(tǒng)函數141
4.8.1C++語言系統(tǒng)函數概述141
4.8.2字符串處理函數143
4.9函數模板147
4.9.1函數模板的概念147
4.9.2函數模板的使用149
練習題151
作業(yè)題152
第5章類和對象(一)161
5.1類的定義161
5.1.1什么是類161
5.1.2類的定義格式162
5.1.3注意事項164
5.2對象的定義166
5.2.1對象的定義格式166
5.2.2對象成員的表示方法166
5.3對象的初始化169
5.3.1構造函數和析構函數169
5.3.2默認構造函數和默認析構函數171
5.3.3復制構造函數171
5.4成員函數的特性174
5.4.1內聯(lián)函數和外聯(lián)函數175
5.4.2重載性176
5.4.3設置參數的默認值177
5.5靜態(tài)成員178
5.5.1靜態(tài)數據成員179
5.5.2靜態(tài)成員函數182
5.6友元183
5.6.1友元函數183
5.6.2友元類185
5.7類的作用域187
5.8局部類和嵌套類188
5.8.1局部類188
5.8.2嵌套類189
5.9對象的生存期190
練習題192
作業(yè)題193
第6章類和對象(二)200
6.1對象指針和對象引用200
6.1.1指向類的成員的指針200
6.1.2對象指針和對象引用作為函數參數203
6.1.3this指針205
6.2對象數組和對象指針數組207
6.2.1對象數組207
6.2.2指向數組的指針和指針數組209
6.2.3帶參數的main()函數214
6.3常類型215
6.3.1一般常量和對象常量215
6.3.2常指針和常引用216
6.3.3常成員函數219
6.3.4常數據成員221
6.4子對象和堆對象222
6.4.1子對象222
6.4.2堆對象224
6.5類型轉換230
6.5.1類型的自動隱式轉換230
6.5.2構造函數具有類型轉換功能231
6.5.3類型轉換函數232
6.6類模板234
6.6.1類模板的引進234
6.6.2類模板和模板類235
6.6.3類模板應用舉例238
6.7應用實例——鏈表240
練習題244
作業(yè)題245
第7章繼承性和派生類254
7.1基類和派生類254
7.1.1派生類的定義255
7.1.2派生類的三種繼承方式255
7.1.3基類成員在派生類中的訪問權限256
7.1.4成員訪問權限的控制256
7.2單繼承259
7.2.1派生類構造函數和析構函數260
7.2.2子類型和賦值兼容規(guī)則266
7.3多繼承269
7.3.1多繼承的概念269
7.3.2多繼承的構造函數和析構函數270
7.3.3多繼承的二義性問題273
7.4虛基類278
7.4.1虛基類的引入和說明278
7.4.2含有虛基類的派生類的構造函數280
7.5應用實例——日期和時間282
練習題284
作業(yè)題285
第8章多態(tài)性和虛函數295
8.1函數重載295
8.2運算符重載298
8.2.1運算符重載的幾個問題298
8.2.2運算符重載函數的兩種形式299
8.2.3其他運算符的重載舉例306
8.3靜態(tài)聯(lián)編和動態(tài)聯(lián)編310
8.3.1靜態(tài)聯(lián)編310
8.3.2動態(tài)聯(lián)編311
8.4虛函數312
8.5純虛函數和抽象類319
8.5.1純虛函數319
8.5.2抽象類322
8.6虛析構函數324
8.7程序舉例326
練習題332
作業(yè)題333
第9章C++語言的I/O流庫342
9.1屏幕輸出343
9.1.1使用預定義的插入符343
9.1.2使用成員函數put()輸出一個字符345
9.1.3使用成員函數write()輸出一個字符串346
9.2鍵盤輸入347
9.2.1使用預定義的提取符347
9.2.2使用成員函數get()獲取一個字符349
9.2.3使用成員函數read()讀取一串字符352
9.3插入符和提取符的重載353
9.4格式化輸入和輸出356
9.4.1使用成員函數設置流的格式化標志位356
9.4.2格式輸出函數358
9.4.3操作子360
9.5磁盤文件的輸入和輸出361
9.5.1磁盤文件的打開和關閉操作361
9.5.2文本文件的讀寫操作363
9.5.3二進制文件的讀寫操作366
9.5.4隨機訪問數據文件368
9.5.5其他有關文件操作的函數371
9.6字符串流374
9.6.1ostrstream類的構造函數375
9.6.2istrstream類的構造函數376
9.7流錯誤的處理377
9.7.1狀態(tài)字和狀態(tài)函數378
9.7.2清除和設置流的狀態(tài)位379
練習題380
作業(yè)題381
附錄AASCII碼表386
參考文獻387