《C++程序設(shè)計及互動多媒體開發(fā)》通過介紹C++編程語言及C++的MFC類庫和QT開發(fā)框架,講解如何對媒體信息進(jìn)行諸如圖像增強(qiáng)、語音合成、視頻播放等的基本理論與技術(shù)。FFmpeg、UE5、Cocos2d-X等都是基于C++語言的新技術(shù),在國內(nèi)發(fā)展迅猛,功能強(qiáng)大,本書在C++語言的基礎(chǔ)上著重講解了這幾項新技術(shù),以達(dá)到綜合運(yùn)用、高效制作的目的。全書內(nèi)容從基本環(huán)境的搭建和更新入手,循序漸進(jìn),既有必要的理論知識鋪墊,又重點(diǎn)突出了對讀者實(shí)踐技能的培養(yǎng)與訓(xùn)練。
本書適合高等院校和職業(yè)類院校數(shù)字媒體專業(yè)的師生參考,也適合理工類院校的多媒體技術(shù)開發(fā)類課程,還可供廣大程序設(shè)計愛好者和數(shù)字媒體設(shè)計人員參考使用。
第1章概述1
1.1從C到C++1
1.1.1C和C++的發(fā)展歷史1
1.1.2C與C++的區(qū)別2
1.1.3面向?qū)ο蟮膬?yōu)點(diǎn)2
1.1.4C++的應(yīng)用領(lǐng)域3
1.2章節(jié)安排4
1.3基礎(chǔ)知識要求4
1.4關(guān)于編譯器5
第2章C++新增語言7
2.1控制臺程序的創(chuàng)建7
2.1.1使用Visual Studio 2022創(chuàng)建控制臺工程7
2.1.2使用Visual C++6.0創(chuàng)建控制臺工程10
2.2C++輸入輸出12
2.2.1cout輸出語句12
2.2.2命名空間13
2.2.3cin輸入語句14
2.3循環(huán)語句新特性16
2.3.1auto關(guān)鍵字16
2.3.2范圍for語句17
2.4動態(tài)內(nèi)存分配18
2.4.1關(guān)于動態(tài)內(nèi)存分配18
2.4.2new與delete運(yùn)算符19
2.5函數(shù)新特性20
2.5.1inline內(nèi)聯(lián)函數(shù)20
2.5.2函數(shù)后置返回類型21
2.5.3引用參數(shù)21
2.5.4函數(shù)重載25
2.6異常27
2.6.1C++異常處理27
2.6.2C++標(biāo)準(zhǔn)異常28
思考與練習(xí)29
第3章類和對象30
3.1類和對象30
3.1.1類和對象的定義30
3.1.2對象的訪問32
3.1.3訪問特性34
3.1.4this指針35
3.2構(gòu)造函數(shù)和析構(gòu)函數(shù)35
3.2.1構(gòu)造函數(shù)36
3.2.2析構(gòu)函數(shù)37
3.3常成員與靜態(tài)成員39
3.3.1常成員函數(shù)39
3.3.2常數(shù)據(jù)成員39
3.3.3靜態(tài)數(shù)據(jù)成員40
3.3.4靜態(tài)成員函數(shù)41
3.4友元函數(shù)44
3.5繼承和派生45
3.5.1繼承和派生的概念45
3.5.2繼承方式和訪問特性47
3.5.3構(gòu)造函數(shù)和析構(gòu)函數(shù)48
3.5.4多繼承49
3.6虛函數(shù)與多態(tài)性54
3.6.1多態(tài)性54
3.6.2運(yùn)算符重載54
3.6.3虛函數(shù)55
3.6.4純虛函數(shù)57
3.6.5抽象類57
3.6.6再說面向?qū)ο?9
思考與練習(xí)59
第4章C++新增類型61
4.1string類型61
4.1.1定義與初始化61
4.1.2string對象的操作62
4.2vector類型65
4.2.1定義與初始化65
4.2.2vector對象的操作66
4.3迭代器68
4.3.1迭代器簡介68
4.3.2迭代器的定義與使用69
4.3.3迭代器的操作69
4.3.4綜合舉例71
4.4模板與泛型72
4.4.1概述72
4.4.2函數(shù)模板74
4.4.3類模板76
4.5C++23新特性80
思考與練習(xí)82
第5章MFC對話框應(yīng)用程序83
5.1Windows編程基礎(chǔ)84
5.1.1Windows應(yīng)用程序84
5.1.2使用API函數(shù)85
5.1.3使用MFC類庫86
5.2基于對話框的應(yīng)用程序87
5.2.1開發(fā)過程88
5.2.2MFC類庫結(jié)構(gòu)92
5.2.3幾種常用控件的類結(jié)構(gòu)92
5.3靜態(tài)文本框、按鈕與編輯框93
5.3.1靜態(tài)文本框93
5.3.2按鈕94
5.3.3文本編輯框95
5.4框架、單選按鈕、復(fù)選框99
5.4.1框架99
5.4.2單選按鈕99
5.4.3復(fù)選框101
5.5列表框和組合框104
5.5.1列表框104
5.5.2組合框107
5.6滾動條109
思考與練習(xí)113
第6章MFC文檔視圖應(yīng)用程序114
6.1文檔/視圖結(jié)構(gòu)114
6.1.1文檔/視圖結(jié)構(gòu)的特點(diǎn)114
6.1.2文檔/視圖程序的開發(fā)過程115
6.2繪圖與文字117
6.2.1OnDraw函數(shù)117
6.2.2Graphics類118
6.2.3畫筆122
6.2.4畫刷123
6.2.5位圖125
6.2.6字體126
6.3定時器127
6.4鼠標(biāo)與鍵盤消息處理134
6.4.1鼠標(biāo)消息134
6.4.2鍵盤消息140
6.5菜單143
6.5.1菜單資源編輯143
6.5.2菜單響應(yīng)函數(shù)143
6.6工具欄146
6.6.1工具欄繪制147
6.6.2工具欄消息響應(yīng)147
6.7對話框148
6.7.1自定義對話框148
6.7.2模態(tài)與非模態(tài)148
6.7.3通用對話框155
思考與練習(xí)158
第7章Qt開發(fā)160
7.1Qt開發(fā)環(huán)境搭建160
7.1.1Qt簡介160
7.1.2Qt安裝160
7.1.3創(chuàng)建Hello World程序161
7.1.4程序發(fā)布166
7.2窗體167
7.2.1創(chuàng)建多窗口程序167
7.2.2登錄對話框171
7.2.3斷點(diǎn)調(diào)試174
7.2.4純代碼編寫175
7.3菜單、工具欄和狀態(tài)欄179
7.3.1菜單179
7.3.2工具欄182
7.3.3文本編輯器與布局182
7.3.4實(shí)現(xiàn)功能代碼183
7.3.5菜單響應(yīng)186
7.3.6狀態(tài)欄189
7.4鼠標(biāo)與鍵盤190
7.4.1鼠標(biāo)事件處理190
7.4.2鍵盤事件處理192
7.5簡單繪圖193
7.5.1繪圖常用類193
7.5.2創(chuàng)建簡單繪圖程序193
思考與練習(xí)195
第8章視頻與音頻196
8.1音視頻開發(fā)概述196
8.1.1音視頻開發(fā)應(yīng)用領(lǐng)域196
8.1.2常用的音視頻開發(fā)庫197
8.2FFMpeg音視頻播放198
8.2.1FFMpeg簡介198
8.2.2FFMpeg開發(fā)設(shè)置199
8.2.3FFMpeg視頻播放器199
8.2.4FFMpeg音頻播放器201
8.2.5音視頻同步201
思考與練習(xí)202
第9章Cocos2d-X游戲開發(fā)203
9.1開發(fā)環(huán)境搭建203
9.1.1軟件下載安裝203
9.1.2創(chuàng)建項目HelloCocos206
9.1.3HelloCocos程序閱讀207
9.2游戲案例——宇宙戰(zhàn)記210
9.2.1創(chuàng)建新項目211
9.2.2清除HelloWorld內(nèi)容211
9.2.3添加背景圖212
9.2.4添加主角戰(zhàn)機(jī)213
9.2.5添加敵機(jī)213
9.2.6發(fā)射子彈 215
9.2.7碰撞檢測217
9.2.8敵機(jī)發(fā)射子彈 220
9.2.9主角戰(zhàn)機(jī)中彈222
9.2.10切換場景 224
9.3安卓版發(fā)布227
9.3.1發(fā)布準(zhǔn)備227
9.3.2導(dǎo)入Cocos的測試工程228
9.3.3導(dǎo)入SpaceWar工程228
思考與練習(xí)229
第10章虛擬現(xiàn)實(shí)應(yīng)用230
10.1虛擬現(xiàn)實(shí)概述230
10.1.1虛擬現(xiàn)實(shí)特性及應(yīng)用領(lǐng)域230
10.1.2虛擬現(xiàn)實(shí)開發(fā)方法231
10.1.3虛幻引擎簡介231
10.2虛幻引擎建;A(chǔ)232
10.2.1創(chuàng)建新項目233
10.2.2場景視口操作234
10.2.3創(chuàng)建新關(guān)卡235
10.2.4放置物體235
10.2.5改變材質(zhì)240
10.2.6導(dǎo)入外部模型241
10.2.7執(zhí)行構(gòu)建過程245
10.2.8設(shè)置默認(rèn)場景245
10.3虛幻引擎編程基礎(chǔ)246
10.3.1引擎編程機(jī)制247
10.3.2控制物體運(yùn)動247
10.3.3 斷點(diǎn)調(diào)試與日志調(diào)試249
10.3.4增強(qiáng)輸入系統(tǒng)250
10.3.5UI設(shè)計與開發(fā)259
10.4虛擬博物館實(shí)例264
10.4.1模型構(gòu)建工作265
10.4.2數(shù)據(jù)結(jié)構(gòu)266
10.4.3程序代碼266
10.5沉浸式環(huán)境搭建267
10.5.1硬件環(huán)境安裝267
10.5.2使用藍(lán)圖搭建270
10.5.3使用C++搭建277
思考與練習(xí)281
參考文獻(xiàn)282