《C++程序设计及互动多媒体开发》通过介绍C++编程语言及C++的MFC类库和QT开发框架,讲解如何对媒体信息进行诸如图像增强、语音合成、视频播放等的基本理论与技术。FFmpeg、UE5、Cocos2d-X等都是基于C++语言的新技术,在国内发展迅猛,功能强大,本书在C++语言的基础上着重讲解了这几项新技术,以达到综合运用、高效制作的目的。全书内容从基本环境的搭建和更新入手,循序渐进,既有必要的理论知识铺垫,又重点突出了对读者实践技能的培养与训练。
本书适合高等院校和职业类院校数字媒体专业的师生参考,也适合理工类院校的多媒体技术开发类课程,还可供广大程序设计爱好者和数字媒体设计人员参考使用。
第1章概述1
1.1从C到C++1
1.1.1C和C++的发展历史1
1.1.2C与C++的区别2
1.1.3面向对象的优点2
1.1.4C++的应用领域3
1.2章节安排4
1.3基础知识要求4
1.4关于编译器5
第2章C++新增语言7
2.1控制台程序的创建7
2.1.1使用Visual Studio 2022创建控制台工程7
2.1.2使用Visual C++6.0创建控制台工程10
2.2C++输入输出12
2.2.1cout输出语句12
2.2.2命名空间13
2.2.3cin输入语句14
2.3循环语句新特性16
2.3.1auto关键字16
2.3.2范围for语句17
2.4动态内存分配18
2.4.1关于动态内存分配18
2.4.2new与delete运算符19
2.5函数新特性20
2.5.1inline内联函数20
2.5.2函数后置返回类型21
2.5.3引用参数21
2.5.4函数重载25
2.6异常27
2.6.1C++异常处理27
2.6.2C++标准异常28
思考与练习29
第3章类和对象30
3.1类和对象30
3.1.1类和对象的定义30
3.1.2对象的访问32
3.1.3访问特性34
3.1.4this指针35
3.2构造函数和析构函数35
3.2.1构造函数36
3.2.2析构函数37
3.3常成员与静态成员39
3.3.1常成员函数39
3.3.2常数据成员39
3.3.3静态数据成员40
3.3.4静态成员函数41
3.4友元函数44
3.5继承和派生45
3.5.1继承和派生的概念45
3.5.2继承方式和访问特性47
3.5.3构造函数和析构函数48
3.5.4多继承49
3.6虚函数与多态性54
3.6.1多态性54
3.6.2运算符重载54
3.6.3虚函数55
3.6.4纯虚函数57
3.6.5抽象类57
3.6.6再说面向对象59
思考与练习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函数模板74
4.4.3类模板76
4.5C++23新特性80
思考与练习82
第5章MFC对话框应用程序83
5.1Windows编程基础84
5.1.1Windows应用程序84
5.1.2使用API函数85
5.1.3使用MFC类库86
5.2基于对话框的应用程序87
5.2.1开发过程88
5.2.2MFC类库结构92
5.2.3几种常用控件的类结构92
5.3静态文本框、按钮与编辑框93
5.3.1静态文本框93
5.3.2按钮94
5.3.3文本编辑框95
5.4框架、单选按钮、复选框99
5.4.1框架99
5.4.2单选按钮99
5.4.3复选框101
5.5列表框和组合框104
5.5.1列表框104
5.5.2组合框107
5.6滚动条109
思考与练习113
第6章MFC文档视图应用程序114
6.1文档/视图结构114
6.1.1文档/视图结构的特点114
6.1.2文档/视图程序的开发过程115
6.2绘图与文字117
6.2.1OnDraw函数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鼠标与键盘消息处理134
6.4.1鼠标消息134
6.4.2键盘消息140
6.5菜单143
6.5.1菜单资源编辑143
6.5.2菜单响应函数143
6.6工具栏146
6.6.1工具栏绘制147
6.6.2工具栏消息响应147
6.7对话框148
6.7.1自定义对话框148
6.7.2模态与非模态148
6.7.3通用对话框155
思考与练习158
第7章Qt开发160
7.1Qt开发环境搭建160
7.1.1Qt简介160
7.1.2Qt安装160
7.1.3创建Hello World程序161
7.1.4程序发布166
7.2窗体167
7.2.1创建多窗口程序167
7.2.2登录对话框171
7.2.3断点调试174
7.2.4纯代码编写175
7.3菜单、工具栏和状态栏179
7.3.1菜单179
7.3.2工具栏182
7.3.3文本编辑器与布局182
7.3.4实现功能代码183
7.3.5菜单响应186
7.3.6状态栏189
7.4鼠标与键盘190
7.4.1鼠标事件处理190
7.4.2键盘事件处理192
7.5简单绘图193
7.5.1绘图常用类193
7.5.2创建简单绘图程序193
思考与练习195
第8章视频与音频196
8.1音视频开发概述196
8.1.1音视频开发应用领域196
8.1.2常用的音视频开发库197
8.2FFMpeg音视频播放198
8.2.1FFMpeg简介198
8.2.2FFMpeg开发设置199
8.2.3FFMpeg视频播放器199
8.2.4FFMpeg音频播放器201
8.2.5音视频同步201
思考与练习202
第9章Cocos2d-X游戏开发203
9.1开发环境搭建203
9.1.1软件下载安装203
9.1.2创建项目HelloCocos206
9.1.3HelloCocos程序阅读207
9.2游戏案例——宇宙战记210
9.2.1创建新项目211
9.2.2清除HelloWorld内容211
9.2.3添加背景图212
9.2.4添加主角战机213
9.2.5添加敌机213
9.2.6发射子弹 215
9.2.7碰撞检测217
9.2.8敌机发射子弹 220
9.2.9主角战机中弹222
9.2.10切换场景 224
9.3安卓版发布227
9.3.1发布准备227
9.3.2导入Cocos的测试工程228
9.3.3导入SpaceWar工程228
思考与练习229
第10章虚拟现实应用230
10.1虚拟现实概述230
10.1.1虚拟现实特性及应用领域230
10.1.2虚拟现实开发方法231
10.1.3虚幻引擎简介231
10.2虚幻引擎建模基础232
10.2.1创建新项目233
10.2.2场景视口操作234
10.2.3创建新关卡235
10.2.4放置物体235
10.2.5改变材质240
10.2.6导入外部模型241
10.2.7执行构建过程245
10.2.8设置默认场景245
10.3虚幻引擎编程基础246
10.3.1引擎编程机制247
10.3.2控制物体运动247
10.3.3 断点调试与日志调试249
10.3.4增强输入系统250
10.3.5UI设计与开发259
10.4虚拟博物馆实例264
10.4.1模型构建工作265
10.4.2数据结构266
10.4.3程序代码266
10.5沉浸式环境搭建267
10.5.1硬件环境安装267
10.5.2使用蓝图搭建270
10.5.3使用C++搭建277
思考与练习281
参考文献282