C++ 开发从入门到精通

C++ 开发从入门到精通
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: ,
2016-09
版次: 1
ISBN: 9787115419910
定价: 69.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 476页
正文语种: 简体中文
29人买过
  • 本书由浅入深地讲解了C++的开发技术,并通过具体实例的实现过程演练了各个知识点的具体应用。全书共26章,其中第1~2章讲解了C++技术的基础知识,包括C++的重要特性和搭建开发环境;第3~7章分别讲解了C++语法、变量、常量、流程控制、运算符和表达式等知识,这些内容都是C++开发技术的核心知识;第8~11章分别讲解了输入、输出、函数、指针和复合类型的基本知识,包含了C++开发技术的重点和难点;第12~21章讲解了面向对象、类、继承、派生、多态、内存管理和异常处理等内容;第22~26章通过5个综合实例的实现过程,介绍了C++技术在综合项目中的开发流程。全书内容循序渐进,以“范例演练”和“技术解惑”贯穿全书,引领读者全面掌握C++语言开发。
    本书不但适合C++的初学者,也适合有一定C++基础的读者,还可以作为大专院校相关专业师生的学习用书和培训学校的教材。 王石磊,南京航天大学通信工程硕士,计算机工程硕士,杰出C++开发工程师和架构师,并且精通Linux底层嵌入式开发技术,曾经从底层硬件到顶层应用独立的开发过一款通信产品。业余期间,曾经在国内主流期刊中发表过多篇通信领域的杰出论文。业余时间乐于技术分享。 第1章 说真的,我们还要学习C++吗 1
    (视频总计29分钟,实例1个,拓展实例2个,技术解惑2个)
    1.1 C++概述 2
    1.2 开发工具—VisualC++ 2
    1.2.1 先看VisualC++的
    基本特点 2
    1.2.2 安装VisualC++ 3
    1.2.3 VisualC++集成开发
    环境介绍 5
    1.3 使用VisualStudio2010 20
    1.4 第一个C++程序 22
    1.5 技术解惑 25
    1.5.1 初学者经常不知道自己
    该学什么 25
    1.5.2 初学者需要知道的正确
    观念 25
    第2章 C++的重要特质分析 26
    (视频总计27分钟,实例1个,拓展实例2个,技术解惑3个)
    2.1 什么是面向对象
    (object-oriented) 27
    2.1.1 什么是OOP 27
    2.1.2 面向对象编程 27
    2.2 分析C++的程序结构 27
    2.2.1 从一段代码看C++程序
    结构 28
    2.2.2 看C++的文件组织 29
    2.3 必须遵循的编码规范 30
    2.3.1 养成良好的风格 30
    2.3.2 必须使用的注释 30
    2.3.3 代码也需要化妆 31
    2.4 输入输出基础 33
    2.4.1 标准输入与输出对象 33
    2.4.2 一个使用IO库的程序 33
    2.5 算法是程序的灵魂 35
    2.5.1 算法的概念 35
    2.5.2 流程图表示算法 36
    2.5.3 计算机语言表示算法 38
    2.6 技术解惑 38
    2.6.1 C++是面向对象,C是面向过程,那么这个对象和过程是什么意思呢 38
    2.6.2 面向对象和面向过程的
    区别 38
    2.6.3 学好C++的建议 39
    第3章 你不一定了解的基础语法 40
    (视频总计19分钟,实例1个,拓展实例2个,技术解惑5个)
    3.1 先看标识符 41
    3.1.1 C++中的保留字 41
    3.1.2 需要遵循的命名规则 41
    3.2 最基本的数据类型 43
    3.2.1 数字运算型 43
    3.2.2 逻辑运算型 46
    3.2.3 字符型和字符串 46
    3.3 标准类型库基础 47
    3.3.1 命名空间using声明 48
    3.3.2 标准库的string类 48
    3.3.3 vector类型简介 52
    3.3.4 迭代器简介 55
    3.3.5 bitset类型初步 57
    3.4 技术解惑 60
    3.4.1 C++的标识符长度应当
    符合“min-length 
    max-information”原则 60
    3.4.2 字符和字符串有什么
    区别 60
    3.4.3 C++中string类字符串和C中char*/char[]型字符串的差别 60
    3.4.4 C++字符串和C字符串的
    转换 61
    3.4.5 C++字符串和字符串结束
    标志 61
    第4章 你不一定了解的变量和常量 62
    (视频总计29分钟,实例8个,拓展实例16个,技术解惑6个)
    4.1 先来看变量 63
    4.1.1 定义变量 63
    4.1.2 声明变量 63
    4.2 变量的作用域 64
    4.2.1 作用域和生存期 64
    4.2.2 作用域限定符 66
    4.2.3 存储类型 67
    4.2.4 C++变量初始化 68
    4.2.5 C++变量命名规范 69
    4.3 再来看常量 70
    4.3.1 什么是常量 70
    4.3.2 常量的分类 70
    4.3.3 常量的应用 73
    4.4 技术解惑 74
    4.4.1 C++常量的命名需要遵循
    一定的规范吗 74
    4.4.2 在C++程序中,用const
    定义常量还是用#define 74
    4.4.3 const是个很重要的关键字,在使用时应该注意些
    什么呢 74
    4.4.4 关于全局变量的初始化,
    C语言和C++有区别吗 75
    4.4.5 C/C++变量在内存中的
    分布 75
    4.4.6 静态变量的初始化顺序 75
    第5章 你不一定了解的运算符 76
    (视频总计29分钟,实例8个,拓展实例16个,技术解惑4个)
    5.1 先看赋值运算符 77
    5.2 再看算术运算符 78
    5.3 再看比较运算符 79
    5.4 再看逻辑运算符 80
    5.5 单独看++/??运算符 81
    5.6 再看位运算符 82
    5.7 再看求字节数运算符 85
    5.8 再看条件运算符 86
    5.9 再看逗号运算符 86
    5.10 技术解惑 88
    5.10.1 避免运算结果溢出的一个方案 88
    5.10.2 运算符重载的权衡 88
    5.10.3 运算符的优先级和
    结合性 88
    5.10.4 运算符重载是对已有运算符赋予多重含义 90
    第6章 说说表达式 91
    (视频总计19分钟,实例4个,拓展实例8个,技术解惑2个)
    6.1 何谓表达式 92
    6.1.1 看天下几分—表达式
    的分类 92
    6.1.2 看表达式的书写方式 92
    6.2 说说类型转换 92
    6.2.1 先看隐式转换 93
    6.2.2 再看显式转换 94
    6.3 技术解惑 98
    6.3.1 C/C++表达式的限制 98
    6.3.2 表达式的真正功能 98
    第7章 流程控制语句 99
    (视频总计42分钟,实例13个,拓展实例26个,技术解惑6个)
    7.1 最简单的语句和语句块 100
    7.1.1 最简单的语句 100
    7.1.2 说说语句块 100
    7.1.3 最后是语句的总结 102
    7.2 最常见的顺序结构 103
    7.3 选择结构 104
    7.3.1 先看单分支结构语句 104
    7.3.2 再看双分支结构语句 105
    7.3.3 还要使用多分支结构
    语句 108
    7.4 循环结构详解 110
    7.4.1 for语句循环 111
    7.4.2 while语句 113
    7.4.3 说说do-while语句 114
    7.5 跳转语句 115
    7.5.1 何谓break语句 115
    7.5.2 何谓continue语句 116
    7.5.3 何谓goto语句 116
    7.6 技术解惑 117
    7.6.1 循环中断的问题 117
    7.6.2 分析循环语句的
    效率 117
    7.6.3 几种循环语句的
    比较 118
    7.6.4 C++中,for循环该
    怎么读 118
    7.6.5 一个C++循环结构嵌套的
    问题 118
    7.6.6 break语句和continue语句的区别 119
    第8章 学习C++的最大障碍—
    指针 120
    (视频总计42分钟,实例12个,拓展实例24个,技术解惑7个)
    8.1 说说指针的基本概念 121
    8.2 定义指针的几种方式 121
    8.2.1 先定义指针 121
    8.2.2 再识别指针 122
    8.3 指针的分类 123
    8.4 指针初始化 123
    8.4.1 第一步:指针地址
    初始化 124
    8.4.2 第二步:变量地址
    初始化 124
    8.4.3 第三步:new分配内存
    单元 125
    8.4.4 第四步:malloc函数分配
    内存单元 125
    8.5 指针运算 126
    8.5.1 算数运算 126
    8.5.2 关系运算 128
    8.6 指针的指针 130
    8.7 使用指针 130
    8.7.1 指针赋值 131
    8.7.2 *操作符 131
    8.8 分析指针和引用的关系 132
    8.9 特殊指针 135
    8.9.1 先看void型指针 135
    8.9.2 再看空指针 136
    8.10 技术解惑 137
    8.10.1 指针的命名规范 137
    8.10.2 C++中指针和引用的
    区别 138
    8.10.3 变量在语言中的实质 139
    8.10.4 C++开发如何避免和
    解决野指针 139
    8.10.5 常量指针常量和常量引用常量 141
    8.10.6 指针常量和引用常量的
    对比 141
    8.10.7 常量指针和常量引用的
    对比 141
    第9章 复合类型 142
    (视频总计57分钟,实例23个,拓展实例46个,技术解惑7个)
    9.1 数组基础 143
    9.1.1 先定义数组 143
    9.1.2 再看高级数组 143
    9.1.3 分析数组的完整性 144
    9.1.4 看维数不全 144
    9.1.5 看无维数 144
    9.2 动态数组 145
    9.2.1 在堆上分配空间的动态
    数组 145
    9.2.2 在栈上分配空间的“假动态”数组 146
    9.3 数组存储 148
    9.3.1 列存储 148
    9.3.2 行存储 148
    9.4 字符数组 149
    9.4.1 定义字符数组 149
    9.4.2 字符数组和字符串指针
    变量 150
    9.5 数组初始化 151
    9.5.1 先看定义时的初始化 151
    9.5.2 初始化赋值语句 151
    9.6 指针和数组 152
    9.6.1 指向数组的指针 153
    9.6.2 指针数组 154
    9.7 使用数组 155
    9.7.1 索引方式 155
    9.7.2 指针方式 156
    9.8 枚举 157
    9.8.1 枚举基础 157
    9.8.2 使用枚举 159
    9.9 结构体 161
    9.9.1 指向结构的指针 162
    9.9.2 使用结构体 162
    9.10 联合 163
    9.11 自定义类型 164
    9.11.1 先看typedef的作用 165
    9.11.2 再看typedef的使用 166
    9.12 技术解惑 166
    9.12.1 字符数组和字符串的
    区别 166
    9.12.2 字符数组和字符串可以
    相互转换 167
    9.12.3 静态数组的速度快于动态数组 167
    9.12.4 Arrays与Vector的
    区别 167
    9.12.5 一道关于数组的
    面试题 168
    9.12.6 数组名不是指针 169
    9.12.7 作为一个用户自定义的
    类型,其所占用的内存
    空间是多少呢 170
    第10章 函数 171
    (视频总计47分钟,实例16个,拓展实例32个,技术解惑8个)
    10.1 C++函数基础 172
    10.1.1 先看定义方式 172
    10.1.2 函数分类 172
    10.1.3 函数定义实例 177
    10.2 函数的参数 179
    10.2.1 何谓形参实参 179
    10.2.2 使用数组做函数参数 180
    10.3 返回值和返回语句 181
    10.4 调用函数 182
    10.4.1 单独调用 182
    10.4.2 函数表达式 183
    10.4.3 实参调用 183
    10.4.4 参数传递 184
    10.5 函数递归 185
    10.6 指向函数的指针 186
    10.7 将函数作为参数 187
    10.8 变量的作用域和生存期 188
    10.8.1 变量作用域 189
    10.8.2 静态存储变量和动态存储
    变量 190
    10.9 函数main()和命令行处理 192
    10.10 技术解惑 193
    10.10.1 用typedef来定义一个
    函数指针类型 193
    10.10.2 const关键字在函数中的
    作用 194
    10.10.3 C++函数的内存分配
    机制 194
    10.10.4 主函数和子函数的
    关系 195
    10.10.5 函数声明和函数定义的
    区别 195
    10.10.6 使用全局变量的注意
    事项 195
    10.10.7 使用寄存器变量的注意
    事项 196
    10.10.8 自动变量的特点 196
    第11章 输入和输出 197
    (视频总计49分钟,实例12个,拓展实例24个,技术解惑5个)
    11.1 iostream对象 198
    11.1.1 标准的I/O接口 198
    11.1.2 文件I/O 200
    11.1.3 字符串I/O 201
    11.2 输出 202
    11.2.1 预定义类型输出 202
    11.2.2 自定义类型输出 203
    11.3 输入 204
    11.3.1 预定义类型输入 204
    11.3.2 自定义类型输入 205
    11.4 输入/输出格式化 206
    11.4.1 使用ios类成员
    函数 206
    11.4.2 使用操纵函数 207
    11.5 文件 209
    11.5.1 打开和关闭 209
    11.5.2 顺序读写 210
    11.5.3 随机读写 212
    11.5.4 二进制文件 213
    11.5.5 检测EOF 213
    11.6 技术解惑 215
    11.6.1 输入/输出时数的进制
    问题 215
    11.6.2 数据间隔 216
    11.6.3 内存文件映射 216
    11.6.4 get和put的值的
    差异 217
    11.6.5 使用控制符控制输出
    格式 217
    第12章 类和封装 218
    (视频总计37分钟,实例9个,拓展实例18个,技术解惑3个)
    12.1 类 219
    12.1.1 先声明类 219
    12.1.2 再看类的属性 220
    12.1.3 再看类的方法 220
    12.1.4 再看构造函数 221
    12.1.5 再看析构函数 224
    12.1.6 再看静态成员 225
    12.1.7 友元 226
    12.1.8 再看修饰符 228
    12.1.9 指向类成员的指针 228
    12.1.10 嵌套类 229
    12.1.11 类文件的组织 230
    12.2 对象 232
    12.2.1 先定义对象 232
    12.2.2 再使用对象 233
    12.2.3 再看this指针 234
    12.3 技术解惑 236
    12.3.1 浅拷贝和深拷贝 236
    12.3.2 构造函数的错误认识和
    正确认识 237
    12.3.3 保护性析构函数的
    作用 237
    第13章 命名空间和作用域 239
    (视频总计23分钟,实例3个,拓展实例6个,技术解惑4个)
    13.1 命名空间介绍 240
    13.2 定义命名空间 240
    13.3 使用命名空间 243
    13.3.1 使用域限定符 243
    13.3.2 使用using指令 243
    13.3.3 using声明 244
    13.3.4 别名 245
    13.4 作用域 245
    13.4.1 什么是作用域 246
    13.4.2 作用域的分类 247
    13.5 技术解惑 249
    13.5.1 using指令与using声明
    的比较 249
    13.5.2 为什么需要命名空间 249
    13.5.3 命名空间的作用 250
    13.5.4 在C++中使用这些头文件的方法 250
    第14章 类的继承和派生 252
    (视频总计37分钟,实例7个,拓展实例14个,技术解惑5个)
    14.1 继承与派生的基本概念 253
    14.2 C++继承机制 253
    14.3 继承和派生的基本知识 255
    14.3.1 单重继承、多重继承与
    继承链 255
    14.3.2 公有派生和私有派生 256
    14.3.3 保护成员与保护派生 256
    14.3.4 友元类和友元函数 257
    14.4 派生一个类 257
    14.4.1 先看基类的使用状况 257
    14.4.2 派生的使用状况 258
    14.4.3 再看构造函数 260
    14.4.4 再看析构函数 262
    14.4.5 使用同名方法 263
    14.4.6 使用同名属性 265
    14.5 单重继承和多重继承 266
    14.5.1 单重继承 266
    14.5.2 多重继承 266
    14.5.3 构造函数和析构函数 267
    14.6 虚继承和虚基类 269
    14.7 技术解惑 271
    14.7.1 通过虚继承解决二义性
    问题 271
    14.7.2 使用C++虚基类的注意
    事项 272
    14.7.3 一个问题 273
    14.7.4 多重继承的二义性 273
    14.7.5 允许派生类中的成员名和基类中的成员名相同 275
    第15章 多态性详解 276
    (视频总计39分钟,实例11个,拓展实例22个,技术解惑6个)
    15.1 基本概念 277
    15.2 先看宏多态 279
    15.3 虚函数 280
    15.3.1 虚函数基础 280
    15.3.2 静态绑定和动态绑定 281
    15.3.3 纯虚函数 282
    15.4 抽象类 283
    15.4.1 什么是抽象类 283
    15.4.2 抽象类的派生 284
    15.5 运算符重载 285
    15.5.1 运算符重载基础 285
    15.5.2 重载一元运算符 286
    15.5.3 重载二元运算符 287
    15.6 函数重载 288
    15.6.1 函数重载基础 288
    15.6.2 参数类型不同的重载 289
    15.7 流的重载 290
    15.7.1 流插入重载 290
    15.7.2 流提取重载 291
    15.8 覆盖 293
    15.8.1 覆盖函数 293
    15.8.2 覆盖变量 294
    15.9 技术解惑 295
    15.9.1 重载、覆盖和隐藏的
    区别 295
    15.9.2 在重载运算符的时候要
    权衡实施的必要性 296
    15.9.3 为什么需要函数重载 296
    15.9.4 重载函数的调用匹配 297
    15.9.5 另一种虚方法查找
    方案 298
    15.9.6 两种重载方法的
    比较 298
    第16章 模板的威力 299
    (视频总计27分钟,实例3个,拓展实例6个,技术解惑4个)
    16.1 基本概念 300
    16.2 类模板 301
    16.2.1 定义类模板 301
    16.2.2 使用类模板 302
    16.2.3 类模板的派生 304
    16.2.4 类模板和模板类的
    区别 304
    16.3 函数模板 305
    16.3.1 定义函数模板 305
    16.3.2 函数模板示例 306
    16.3.3 模板实例化 306
    16.4 模板组合 307
    16.5 技术解惑 308
    16.5.1 在函数模板中使用多个类型参数时要避免类型参数的二义性 308
    16.5.2 函数模板和模板函数的
    区别 308
    16.5.3 函数模板和类模板的
    区别 309
    16.5.4 仿函数的用处 309
    第17章 进一步剖析string类 310
    (视频总计19分钟,实例3个,拓展实例6个,技术解惑3个)
    17.1 string类的方法 311
    17.2 string类的运算 313
    17.2.1 查找函数 313
    17.2.2 替换函数 314
    17.2.3 插入函数 314
    17.2.4 删除函数 314
    17.2.5 比较函数 315
    17.2.6 连接函数 315
    17.2.7 赋值函数 315
    17.2.8 特性描述函数 316
    17.2.9 构造函数 316
    17.2.10 迭代器处理 316
    17.2.11 其他几种处理函数 316
    17.3 string类综合应用 317
    17.3.1 头文件123.h 318
    17.3.2 类实现文件
    yinyong.cpp 318
    17.3.3 测试使用主文件
    zonghe.cpp 320
    17.4 技术解惑 320
    17.4.1 C++字符串和C字符串
    的转换 320
    17.4.2 大小和容量函数 321
    17.4.3 cstring类与string类的
    比较 321
    第18章 异常处理 323
    (视频总计19分钟,实例5个,拓展实例10个,技术解惑13个)
    18.1 什么是异常处理 324
    18.2 C++的异常处理机制 324
    18.2.1 throw抛出异常 326
    18.2.2 raise抛出异常 327
    18.2.3 try-catch异常捕获 328
    18.3 异常处理中的构造和析构 330
    18.4 C++异常处理机制总结 331
    18.5 技术解惑 333
    18.5.1 编写软件的目标 333
    18.5.2 关于C++的new关键字
    的异常处理 333
    18.5.3 C语言异常处理和
    结构化异常处理有什么
    区别? 334
    18.5.4 C++抛出异常不捕获,程序的空间会释放吗? 334
    18.5.5 throw抛出异常的
    特点 335
    18.5.6 关于C异常处理的心得
    体会 335
    18.5.7 慎用catch(...) 335
    18.5.8 慎用继承体系里的类作为catch的参数 336
    18.5.9 对象析构函数被调用的
    3种场合 336
    18.5.10 不要在异常处理体系中
    寄希望于类型转换 336
    18.5.11 有C++异常处理体系捕获不到的东西吗? 337
    18.5.12 set_unexpected函数的
    用处 337
    18.5.13 不要让异常逃离析构
    函数 337
    第19章 内存管理 338
    (视频总计19分钟,实例5个,拓展实例10个,技术解惑3个)
    19.1 内存分类 339
    19.2 栈内存管理 339
    19.2.1 申请栈内存 339
    19.2.2 使用栈内存 340
    19.2.3 释放栈内存 342
    19.2.4 改变内存大小 342
    19.3 堆内存管理 343
    19.3.1 申请堆内存 343
    19.3.2 使用堆内存 343
    19.3.3 释放堆内存 344
    19.3.4 改变大小 345
    19.4 技术解惑 346
    19.4.1 堆和栈的区别 346
    19.4.2 常见的内存错误及其
    对策 347
    19.4.3 防止发生溢出错误 348
    第20章 预处理 349
    (视频总计24分钟,实例2个,拓展实例4个,技术解惑3个)
    20.1 什么是预处理 350
    20.2 C++中常见的预处理 350
    20.2.1 文件包含 350
    20.2.2 条件编译 351
    20.2.3 布局控制 352
    20.2.4 宏替换 354
    20.2.5 其他预编译指令 355
    20.3 分析宏的常见陷阱 356
    20.4 技术解惑 357
    20.4.1 预处理的未来 357
    20.4.2 两者的意义 358
    20.4.3 一个初学者的问题 358
    第21章 错误和调试 359
    (视频总计21分钟,实例2个,拓展实例4个,技术解惑4个)
    21.1 什么是错误 360
    21.1.1 Bug的由来 360
    21.1.2 程序设计方面的
    解释 360
    21.2 常见的错误分析 360
    21.3 程序调试常见错误 364
    21.4 C++编程中的调试技巧 369
    21.4.1 调试标记 369
    21.4.2 运行期间调试标记 369
    21.4.3 把变量和表达式转换成
    字符串 370
    21.4.4 C语言的assert() 370
    21.5 技术解惑 370
    21.5.1 编写规范易懂的代码 370
    21.5.2 编写安全可靠的代码 371
    21.5.3 VisualC++调试技术 372
    21.5.4 常见的非语法错误 375
    第22章 初入江湖—图书借阅系统的
    实现过程 376
    (视频总计19分钟)
    22.1 项目要求 377
    22.2 需求分析 377
    22.3 系统具体实现 378
    22.3.1 数据结构设计 378
    22.3.2 系统主文件rent.cpp 378
    22.3.3 菜单处理文件
    mainfunction.h 379
    22.3.4 函数定义文件
    subfunction.h 379
    22.3.5 菜单处理实现文件
    mainfunction.cpp 380
    22.3.6 功能函数实现文件
    subfunction.cpp 383
    第23章 开始闯关(1)—C++实现
    网络应用项目 396
    (视频总计18分钟)
    23.1 项目要求 397
    23.1.1 客户机/服务器模式
    介绍 397
    23.1.2 客户机/服务器模式的运作
    流程 398
    23.2 实现原理 398
    23.2.1 什么是winsocket编程
    接口 398
    23.2.2 winsocket中的函数 398
    23.3 具体实现 403
    23.3.1 客户端和服务器端的公用
    文件 403
    23.3.2 实现服务器端 405
    23.3.3 实现客户端 406
    第24章 开始闯关(2)—C++实现
    游戏项目 408
    (视频总计43分钟)
    24.1 计算机游戏基础 409
    24.1.1 游戏的基本流程 409
    24.1.2 游戏元素 409
    24.1.3 游戏层次 410
    24.2 项目分析 410
    24.2.1 游戏的角色 410
    24.2.2 游戏界面表现 411
    24.3 具体实现 411
    24.3.1 实现相关位图 411
    24.3.2 变量与函数 411
    24.3.3 实现全屏 412
    24.3.4 类初始化 413
    24.3.5 实现具体显示界面 413
    24.3.6 信息提示 415
    24.3.7 和时间段相关的
    操作 415
    24.3.8 键盘操作 416
    24.3.9 我方发射子弹 417
    24.3.10 敌机出现 418
    24.3.11 敌机发射子弹 418
    24.3.12 敌机子弹移动 419
    24.3.13 火力实现 419
    第25章 功成名就—DirectX实现
    媒体播放器 421
    (视频总计37分钟)
    25.1 DirectX技术基础 422
    25.1.1 DirectX技术概述 422
    25.1.2 DirectX的基本结构及
    组成 422
    25.1.3 DirectX主要组件
    介绍 423
    25.2 系统分析和设计 425
    25.2.1 功能需求和效果展示 426
    25.2.2 设计FilterGraph结构 427
    25.3 实现媒体控制类 427
    25.3.1 CDXGraph类初始化 427
    25.3.2 创建Graph滤波器
    链表 428
    25.3.3 设计图像窗口 429
    25.3.4 媒体播放控制 430
    25.3.5 视频全屏显示 433
    25.3.6 抓图保存 433
    25.4 实现播放器主题 433
    25.4.1 打开一个媒体文件 433
    25.4.2 渲染媒体文件 434
    25.4.3 播放媒体文件 434
    25.4.4 实现控制功能 435
    25.4.5 实现拖放功能 438
    25.4.6 实现音量调节功能 438
    25.4.7 添加背景图片 439
    第26章 笑傲江湖—C++网络视频
    监控系统 440
    (视频总计65分钟)
    26.1 系统分析 441
    26.2 系统设计 441
    26.3 系统预览 441
    26.4 数据库设计 442
    26.5 选购监控卡 444
    26.6 具体编程实现 445
    26.6.1 设计公共模块 445
    26.6.2 设计主窗体 449
    26.7 设计管理员登录模块 460
    26.8 设计监控管理模块 462
    26.8.1 监控管理技术分析 462
    26.8.2 编程监控管理 463
    26.8.3 单元测试处理 465
    26.9 设计广角自动监控模块 466
    26.9.1 可行性分析 466
    26.9.2 编程实现 467
    26.9.3 单元测试 469
    26.10 设计视频回放模块 470
    26.11 分析绚丽界面的实现方法 471
  • 内容简介:
    本书由浅入深地讲解了C++的开发技术,并通过具体实例的实现过程演练了各个知识点的具体应用。全书共26章,其中第1~2章讲解了C++技术的基础知识,包括C++的重要特性和搭建开发环境;第3~7章分别讲解了C++语法、变量、常量、流程控制、运算符和表达式等知识,这些内容都是C++开发技术的核心知识;第8~11章分别讲解了输入、输出、函数、指针和复合类型的基本知识,包含了C++开发技术的重点和难点;第12~21章讲解了面向对象、类、继承、派生、多态、内存管理和异常处理等内容;第22~26章通过5个综合实例的实现过程,介绍了C++技术在综合项目中的开发流程。全书内容循序渐进,以“范例演练”和“技术解惑”贯穿全书,引领读者全面掌握C++语言开发。
    本书不但适合C++的初学者,也适合有一定C++基础的读者,还可以作为大专院校相关专业师生的学习用书和培训学校的教材。
  • 作者简介:
    王石磊,南京航天大学通信工程硕士,计算机工程硕士,杰出C++开发工程师和架构师,并且精通Linux底层嵌入式开发技术,曾经从底层硬件到顶层应用独立的开发过一款通信产品。业余期间,曾经在国内主流期刊中发表过多篇通信领域的杰出论文。业余时间乐于技术分享。
  • 目录:
    第1章 说真的,我们还要学习C++吗 1
    (视频总计29分钟,实例1个,拓展实例2个,技术解惑2个)
    1.1 C++概述 2
    1.2 开发工具—VisualC++ 2
    1.2.1 先看VisualC++的
    基本特点 2
    1.2.2 安装VisualC++ 3
    1.2.3 VisualC++集成开发
    环境介绍 5
    1.3 使用VisualStudio2010 20
    1.4 第一个C++程序 22
    1.5 技术解惑 25
    1.5.1 初学者经常不知道自己
    该学什么 25
    1.5.2 初学者需要知道的正确
    观念 25
    第2章 C++的重要特质分析 26
    (视频总计27分钟,实例1个,拓展实例2个,技术解惑3个)
    2.1 什么是面向对象
    (object-oriented) 27
    2.1.1 什么是OOP 27
    2.1.2 面向对象编程 27
    2.2 分析C++的程序结构 27
    2.2.1 从一段代码看C++程序
    结构 28
    2.2.2 看C++的文件组织 29
    2.3 必须遵循的编码规范 30
    2.3.1 养成良好的风格 30
    2.3.2 必须使用的注释 30
    2.3.3 代码也需要化妆 31
    2.4 输入输出基础 33
    2.4.1 标准输入与输出对象 33
    2.4.2 一个使用IO库的程序 33
    2.5 算法是程序的灵魂 35
    2.5.1 算法的概念 35
    2.5.2 流程图表示算法 36
    2.5.3 计算机语言表示算法 38
    2.6 技术解惑 38
    2.6.1 C++是面向对象,C是面向过程,那么这个对象和过程是什么意思呢 38
    2.6.2 面向对象和面向过程的
    区别 38
    2.6.3 学好C++的建议 39
    第3章 你不一定了解的基础语法 40
    (视频总计19分钟,实例1个,拓展实例2个,技术解惑5个)
    3.1 先看标识符 41
    3.1.1 C++中的保留字 41
    3.1.2 需要遵循的命名规则 41
    3.2 最基本的数据类型 43
    3.2.1 数字运算型 43
    3.2.2 逻辑运算型 46
    3.2.3 字符型和字符串 46
    3.3 标准类型库基础 47
    3.3.1 命名空间using声明 48
    3.3.2 标准库的string类 48
    3.3.3 vector类型简介 52
    3.3.4 迭代器简介 55
    3.3.5 bitset类型初步 57
    3.4 技术解惑 60
    3.4.1 C++的标识符长度应当
    符合“min-length 
    max-information”原则 60
    3.4.2 字符和字符串有什么
    区别 60
    3.4.3 C++中string类字符串和C中char*/char[]型字符串的差别 60
    3.4.4 C++字符串和C字符串的
    转换 61
    3.4.5 C++字符串和字符串结束
    标志 61
    第4章 你不一定了解的变量和常量 62
    (视频总计29分钟,实例8个,拓展实例16个,技术解惑6个)
    4.1 先来看变量 63
    4.1.1 定义变量 63
    4.1.2 声明变量 63
    4.2 变量的作用域 64
    4.2.1 作用域和生存期 64
    4.2.2 作用域限定符 66
    4.2.3 存储类型 67
    4.2.4 C++变量初始化 68
    4.2.5 C++变量命名规范 69
    4.3 再来看常量 70
    4.3.1 什么是常量 70
    4.3.2 常量的分类 70
    4.3.3 常量的应用 73
    4.4 技术解惑 74
    4.4.1 C++常量的命名需要遵循
    一定的规范吗 74
    4.4.2 在C++程序中,用const
    定义常量还是用#define 74
    4.4.3 const是个很重要的关键字,在使用时应该注意些
    什么呢 74
    4.4.4 关于全局变量的初始化,
    C语言和C++有区别吗 75
    4.4.5 C/C++变量在内存中的
    分布 75
    4.4.6 静态变量的初始化顺序 75
    第5章 你不一定了解的运算符 76
    (视频总计29分钟,实例8个,拓展实例16个,技术解惑4个)
    5.1 先看赋值运算符 77
    5.2 再看算术运算符 78
    5.3 再看比较运算符 79
    5.4 再看逻辑运算符 80
    5.5 单独看++/??运算符 81
    5.6 再看位运算符 82
    5.7 再看求字节数运算符 85
    5.8 再看条件运算符 86
    5.9 再看逗号运算符 86
    5.10 技术解惑 88
    5.10.1 避免运算结果溢出的一个方案 88
    5.10.2 运算符重载的权衡 88
    5.10.3 运算符的优先级和
    结合性 88
    5.10.4 运算符重载是对已有运算符赋予多重含义 90
    第6章 说说表达式 91
    (视频总计19分钟,实例4个,拓展实例8个,技术解惑2个)
    6.1 何谓表达式 92
    6.1.1 看天下几分—表达式
    的分类 92
    6.1.2 看表达式的书写方式 92
    6.2 说说类型转换 92
    6.2.1 先看隐式转换 93
    6.2.2 再看显式转换 94
    6.3 技术解惑 98
    6.3.1 C/C++表达式的限制 98
    6.3.2 表达式的真正功能 98
    第7章 流程控制语句 99
    (视频总计42分钟,实例13个,拓展实例26个,技术解惑6个)
    7.1 最简单的语句和语句块 100
    7.1.1 最简单的语句 100
    7.1.2 说说语句块 100
    7.1.3 最后是语句的总结 102
    7.2 最常见的顺序结构 103
    7.3 选择结构 104
    7.3.1 先看单分支结构语句 104
    7.3.2 再看双分支结构语句 105
    7.3.3 还要使用多分支结构
    语句 108
    7.4 循环结构详解 110
    7.4.1 for语句循环 111
    7.4.2 while语句 113
    7.4.3 说说do-while语句 114
    7.5 跳转语句 115
    7.5.1 何谓break语句 115
    7.5.2 何谓continue语句 116
    7.5.3 何谓goto语句 116
    7.6 技术解惑 117
    7.6.1 循环中断的问题 117
    7.6.2 分析循环语句的
    效率 117
    7.6.3 几种循环语句的
    比较 118
    7.6.4 C++中,for循环该
    怎么读 118
    7.6.5 一个C++循环结构嵌套的
    问题 118
    7.6.6 break语句和continue语句的区别 119
    第8章 学习C++的最大障碍—
    指针 120
    (视频总计42分钟,实例12个,拓展实例24个,技术解惑7个)
    8.1 说说指针的基本概念 121
    8.2 定义指针的几种方式 121
    8.2.1 先定义指针 121
    8.2.2 再识别指针 122
    8.3 指针的分类 123
    8.4 指针初始化 123
    8.4.1 第一步:指针地址
    初始化 124
    8.4.2 第二步:变量地址
    初始化 124
    8.4.3 第三步:new分配内存
    单元 125
    8.4.4 第四步:malloc函数分配
    内存单元 125
    8.5 指针运算 126
    8.5.1 算数运算 126
    8.5.2 关系运算 128
    8.6 指针的指针 130
    8.7 使用指针 130
    8.7.1 指针赋值 131
    8.7.2 *操作符 131
    8.8 分析指针和引用的关系 132
    8.9 特殊指针 135
    8.9.1 先看void型指针 135
    8.9.2 再看空指针 136
    8.10 技术解惑 137
    8.10.1 指针的命名规范 137
    8.10.2 C++中指针和引用的
    区别 138
    8.10.3 变量在语言中的实质 139
    8.10.4 C++开发如何避免和
    解决野指针 139
    8.10.5 常量指针常量和常量引用常量 141
    8.10.6 指针常量和引用常量的
    对比 141
    8.10.7 常量指针和常量引用的
    对比 141
    第9章 复合类型 142
    (视频总计57分钟,实例23个,拓展实例46个,技术解惑7个)
    9.1 数组基础 143
    9.1.1 先定义数组 143
    9.1.2 再看高级数组 143
    9.1.3 分析数组的完整性 144
    9.1.4 看维数不全 144
    9.1.5 看无维数 144
    9.2 动态数组 145
    9.2.1 在堆上分配空间的动态
    数组 145
    9.2.2 在栈上分配空间的“假动态”数组 146
    9.3 数组存储 148
    9.3.1 列存储 148
    9.3.2 行存储 148
    9.4 字符数组 149
    9.4.1 定义字符数组 149
    9.4.2 字符数组和字符串指针
    变量 150
    9.5 数组初始化 151
    9.5.1 先看定义时的初始化 151
    9.5.2 初始化赋值语句 151
    9.6 指针和数组 152
    9.6.1 指向数组的指针 153
    9.6.2 指针数组 154
    9.7 使用数组 155
    9.7.1 索引方式 155
    9.7.2 指针方式 156
    9.8 枚举 157
    9.8.1 枚举基础 157
    9.8.2 使用枚举 159
    9.9 结构体 161
    9.9.1 指向结构的指针 162
    9.9.2 使用结构体 162
    9.10 联合 163
    9.11 自定义类型 164
    9.11.1 先看typedef的作用 165
    9.11.2 再看typedef的使用 166
    9.12 技术解惑 166
    9.12.1 字符数组和字符串的
    区别 166
    9.12.2 字符数组和字符串可以
    相互转换 167
    9.12.3 静态数组的速度快于动态数组 167
    9.12.4 Arrays与Vector的
    区别 167
    9.12.5 一道关于数组的
    面试题 168
    9.12.6 数组名不是指针 169
    9.12.7 作为一个用户自定义的
    类型,其所占用的内存
    空间是多少呢 170
    第10章 函数 171
    (视频总计47分钟,实例16个,拓展实例32个,技术解惑8个)
    10.1 C++函数基础 172
    10.1.1 先看定义方式 172
    10.1.2 函数分类 172
    10.1.3 函数定义实例 177
    10.2 函数的参数 179
    10.2.1 何谓形参实参 179
    10.2.2 使用数组做函数参数 180
    10.3 返回值和返回语句 181
    10.4 调用函数 182
    10.4.1 单独调用 182
    10.4.2 函数表达式 183
    10.4.3 实参调用 183
    10.4.4 参数传递 184
    10.5 函数递归 185
    10.6 指向函数的指针 186
    10.7 将函数作为参数 187
    10.8 变量的作用域和生存期 188
    10.8.1 变量作用域 189
    10.8.2 静态存储变量和动态存储
    变量 190
    10.9 函数main()和命令行处理 192
    10.10 技术解惑 193
    10.10.1 用typedef来定义一个
    函数指针类型 193
    10.10.2 const关键字在函数中的
    作用 194
    10.10.3 C++函数的内存分配
    机制 194
    10.10.4 主函数和子函数的
    关系 195
    10.10.5 函数声明和函数定义的
    区别 195
    10.10.6 使用全局变量的注意
    事项 195
    10.10.7 使用寄存器变量的注意
    事项 196
    10.10.8 自动变量的特点 196
    第11章 输入和输出 197
    (视频总计49分钟,实例12个,拓展实例24个,技术解惑5个)
    11.1 iostream对象 198
    11.1.1 标准的I/O接口 198
    11.1.2 文件I/O 200
    11.1.3 字符串I/O 201
    11.2 输出 202
    11.2.1 预定义类型输出 202
    11.2.2 自定义类型输出 203
    11.3 输入 204
    11.3.1 预定义类型输入 204
    11.3.2 自定义类型输入 205
    11.4 输入/输出格式化 206
    11.4.1 使用ios类成员
    函数 206
    11.4.2 使用操纵函数 207
    11.5 文件 209
    11.5.1 打开和关闭 209
    11.5.2 顺序读写 210
    11.5.3 随机读写 212
    11.5.4 二进制文件 213
    11.5.5 检测EOF 213
    11.6 技术解惑 215
    11.6.1 输入/输出时数的进制
    问题 215
    11.6.2 数据间隔 216
    11.6.3 内存文件映射 216
    11.6.4 get和put的值的
    差异 217
    11.6.5 使用控制符控制输出
    格式 217
    第12章 类和封装 218
    (视频总计37分钟,实例9个,拓展实例18个,技术解惑3个)
    12.1 类 219
    12.1.1 先声明类 219
    12.1.2 再看类的属性 220
    12.1.3 再看类的方法 220
    12.1.4 再看构造函数 221
    12.1.5 再看析构函数 224
    12.1.6 再看静态成员 225
    12.1.7 友元 226
    12.1.8 再看修饰符 228
    12.1.9 指向类成员的指针 228
    12.1.10 嵌套类 229
    12.1.11 类文件的组织 230
    12.2 对象 232
    12.2.1 先定义对象 232
    12.2.2 再使用对象 233
    12.2.3 再看this指针 234
    12.3 技术解惑 236
    12.3.1 浅拷贝和深拷贝 236
    12.3.2 构造函数的错误认识和
    正确认识 237
    12.3.3 保护性析构函数的
    作用 237
    第13章 命名空间和作用域 239
    (视频总计23分钟,实例3个,拓展实例6个,技术解惑4个)
    13.1 命名空间介绍 240
    13.2 定义命名空间 240
    13.3 使用命名空间 243
    13.3.1 使用域限定符 243
    13.3.2 使用using指令 243
    13.3.3 using声明 244
    13.3.4 别名 245
    13.4 作用域 245
    13.4.1 什么是作用域 246
    13.4.2 作用域的分类 247
    13.5 技术解惑 249
    13.5.1 using指令与using声明
    的比较 249
    13.5.2 为什么需要命名空间 249
    13.5.3 命名空间的作用 250
    13.5.4 在C++中使用这些头文件的方法 250
    第14章 类的继承和派生 252
    (视频总计37分钟,实例7个,拓展实例14个,技术解惑5个)
    14.1 继承与派生的基本概念 253
    14.2 C++继承机制 253
    14.3 继承和派生的基本知识 255
    14.3.1 单重继承、多重继承与
    继承链 255
    14.3.2 公有派生和私有派生 256
    14.3.3 保护成员与保护派生 256
    14.3.4 友元类和友元函数 257
    14.4 派生一个类 257
    14.4.1 先看基类的使用状况 257
    14.4.2 派生的使用状况 258
    14.4.3 再看构造函数 260
    14.4.4 再看析构函数 262
    14.4.5 使用同名方法 263
    14.4.6 使用同名属性 265
    14.5 单重继承和多重继承 266
    14.5.1 单重继承 266
    14.5.2 多重继承 266
    14.5.3 构造函数和析构函数 267
    14.6 虚继承和虚基类 269
    14.7 技术解惑 271
    14.7.1 通过虚继承解决二义性
    问题 271
    14.7.2 使用C++虚基类的注意
    事项 272
    14.7.3 一个问题 273
    14.7.4 多重继承的二义性 273
    14.7.5 允许派生类中的成员名和基类中的成员名相同 275
    第15章 多态性详解 276
    (视频总计39分钟,实例11个,拓展实例22个,技术解惑6个)
    15.1 基本概念 277
    15.2 先看宏多态 279
    15.3 虚函数 280
    15.3.1 虚函数基础 280
    15.3.2 静态绑定和动态绑定 281
    15.3.3 纯虚函数 282
    15.4 抽象类 283
    15.4.1 什么是抽象类 283
    15.4.2 抽象类的派生 284
    15.5 运算符重载 285
    15.5.1 运算符重载基础 285
    15.5.2 重载一元运算符 286
    15.5.3 重载二元运算符 287
    15.6 函数重载 288
    15.6.1 函数重载基础 288
    15.6.2 参数类型不同的重载 289
    15.7 流的重载 290
    15.7.1 流插入重载 290
    15.7.2 流提取重载 291
    15.8 覆盖 293
    15.8.1 覆盖函数 293
    15.8.2 覆盖变量 294
    15.9 技术解惑 295
    15.9.1 重载、覆盖和隐藏的
    区别 295
    15.9.2 在重载运算符的时候要
    权衡实施的必要性 296
    15.9.3 为什么需要函数重载 296
    15.9.4 重载函数的调用匹配 297
    15.9.5 另一种虚方法查找
    方案 298
    15.9.6 两种重载方法的
    比较 298
    第16章 模板的威力 299
    (视频总计27分钟,实例3个,拓展实例6个,技术解惑4个)
    16.1 基本概念 300
    16.2 类模板 301
    16.2.1 定义类模板 301
    16.2.2 使用类模板 302
    16.2.3 类模板的派生 304
    16.2.4 类模板和模板类的
    区别 304
    16.3 函数模板 305
    16.3.1 定义函数模板 305
    16.3.2 函数模板示例 306
    16.3.3 模板实例化 306
    16.4 模板组合 307
    16.5 技术解惑 308
    16.5.1 在函数模板中使用多个类型参数时要避免类型参数的二义性 308
    16.5.2 函数模板和模板函数的
    区别 308
    16.5.3 函数模板和类模板的
    区别 309
    16.5.4 仿函数的用处 309
    第17章 进一步剖析string类 310
    (视频总计19分钟,实例3个,拓展实例6个,技术解惑3个)
    17.1 string类的方法 311
    17.2 string类的运算 313
    17.2.1 查找函数 313
    17.2.2 替换函数 314
    17.2.3 插入函数 314
    17.2.4 删除函数 314
    17.2.5 比较函数 315
    17.2.6 连接函数 315
    17.2.7 赋值函数 315
    17.2.8 特性描述函数 316
    17.2.9 构造函数 316
    17.2.10 迭代器处理 316
    17.2.11 其他几种处理函数 316
    17.3 string类综合应用 317
    17.3.1 头文件123.h 318
    17.3.2 类实现文件
    yinyong.cpp 318
    17.3.3 测试使用主文件
    zonghe.cpp 320
    17.4 技术解惑 320
    17.4.1 C++字符串和C字符串
    的转换 320
    17.4.2 大小和容量函数 321
    17.4.3 cstring类与string类的
    比较 321
    第18章 异常处理 323
    (视频总计19分钟,实例5个,拓展实例10个,技术解惑13个)
    18.1 什么是异常处理 324
    18.2 C++的异常处理机制 324
    18.2.1 throw抛出异常 326
    18.2.2 raise抛出异常 327
    18.2.3 try-catch异常捕获 328
    18.3 异常处理中的构造和析构 330
    18.4 C++异常处理机制总结 331
    18.5 技术解惑 333
    18.5.1 编写软件的目标 333
    18.5.2 关于C++的new关键字
    的异常处理 333
    18.5.3 C语言异常处理和
    结构化异常处理有什么
    区别? 334
    18.5.4 C++抛出异常不捕获,程序的空间会释放吗? 334
    18.5.5 throw抛出异常的
    特点 335
    18.5.6 关于C异常处理的心得
    体会 335
    18.5.7 慎用catch(...) 335
    18.5.8 慎用继承体系里的类作为catch的参数 336
    18.5.9 对象析构函数被调用的
    3种场合 336
    18.5.10 不要在异常处理体系中
    寄希望于类型转换 336
    18.5.11 有C++异常处理体系捕获不到的东西吗? 337
    18.5.12 set_unexpected函数的
    用处 337
    18.5.13 不要让异常逃离析构
    函数 337
    第19章 内存管理 338
    (视频总计19分钟,实例5个,拓展实例10个,技术解惑3个)
    19.1 内存分类 339
    19.2 栈内存管理 339
    19.2.1 申请栈内存 339
    19.2.2 使用栈内存 340
    19.2.3 释放栈内存 342
    19.2.4 改变内存大小 342
    19.3 堆内存管理 343
    19.3.1 申请堆内存 343
    19.3.2 使用堆内存 343
    19.3.3 释放堆内存 344
    19.3.4 改变大小 345
    19.4 技术解惑 346
    19.4.1 堆和栈的区别 346
    19.4.2 常见的内存错误及其
    对策 347
    19.4.3 防止发生溢出错误 348
    第20章 预处理 349
    (视频总计24分钟,实例2个,拓展实例4个,技术解惑3个)
    20.1 什么是预处理 350
    20.2 C++中常见的预处理 350
    20.2.1 文件包含 350
    20.2.2 条件编译 351
    20.2.3 布局控制 352
    20.2.4 宏替换 354
    20.2.5 其他预编译指令 355
    20.3 分析宏的常见陷阱 356
    20.4 技术解惑 357
    20.4.1 预处理的未来 357
    20.4.2 两者的意义 358
    20.4.3 一个初学者的问题 358
    第21章 错误和调试 359
    (视频总计21分钟,实例2个,拓展实例4个,技术解惑4个)
    21.1 什么是错误 360
    21.1.1 Bug的由来 360
    21.1.2 程序设计方面的
    解释 360
    21.2 常见的错误分析 360
    21.3 程序调试常见错误 364
    21.4 C++编程中的调试技巧 369
    21.4.1 调试标记 369
    21.4.2 运行期间调试标记 369
    21.4.3 把变量和表达式转换成
    字符串 370
    21.4.4 C语言的assert() 370
    21.5 技术解惑 370
    21.5.1 编写规范易懂的代码 370
    21.5.2 编写安全可靠的代码 371
    21.5.3 VisualC++调试技术 372
    21.5.4 常见的非语法错误 375
    第22章 初入江湖—图书借阅系统的
    实现过程 376
    (视频总计19分钟)
    22.1 项目要求 377
    22.2 需求分析 377
    22.3 系统具体实现 378
    22.3.1 数据结构设计 378
    22.3.2 系统主文件rent.cpp 378
    22.3.3 菜单处理文件
    mainfunction.h 379
    22.3.4 函数定义文件
    subfunction.h 379
    22.3.5 菜单处理实现文件
    mainfunction.cpp 380
    22.3.6 功能函数实现文件
    subfunction.cpp 383
    第23章 开始闯关(1)—C++实现
    网络应用项目 396
    (视频总计18分钟)
    23.1 项目要求 397
    23.1.1 客户机/服务器模式
    介绍 397
    23.1.2 客户机/服务器模式的运作
    流程 398
    23.2 实现原理 398
    23.2.1 什么是winsocket编程
    接口 398
    23.2.2 winsocket中的函数 398
    23.3 具体实现 403
    23.3.1 客户端和服务器端的公用
    文件 403
    23.3.2 实现服务器端 405
    23.3.3 实现客户端 406
    第24章 开始闯关(2)—C++实现
    游戏项目 408
    (视频总计43分钟)
    24.1 计算机游戏基础 409
    24.1.1 游戏的基本流程 409
    24.1.2 游戏元素 409
    24.1.3 游戏层次 410
    24.2 项目分析 410
    24.2.1 游戏的角色 410
    24.2.2 游戏界面表现 411
    24.3 具体实现 411
    24.3.1 实现相关位图 411
    24.3.2 变量与函数 411
    24.3.3 实现全屏 412
    24.3.4 类初始化 413
    24.3.5 实现具体显示界面 413
    24.3.6 信息提示 415
    24.3.7 和时间段相关的
    操作 415
    24.3.8 键盘操作 416
    24.3.9 我方发射子弹 417
    24.3.10 敌机出现 418
    24.3.11 敌机发射子弹 418
    24.3.12 敌机子弹移动 419
    24.3.13 火力实现 419
    第25章 功成名就—DirectX实现
    媒体播放器 421
    (视频总计37分钟)
    25.1 DirectX技术基础 422
    25.1.1 DirectX技术概述 422
    25.1.2 DirectX的基本结构及
    组成 422
    25.1.3 DirectX主要组件
    介绍 423
    25.2 系统分析和设计 425
    25.2.1 功能需求和效果展示 426
    25.2.2 设计FilterGraph结构 427
    25.3 实现媒体控制类 427
    25.3.1 CDXGraph类初始化 427
    25.3.2 创建Graph滤波器
    链表 428
    25.3.3 设计图像窗口 429
    25.3.4 媒体播放控制 430
    25.3.5 视频全屏显示 433
    25.3.6 抓图保存 433
    25.4 实现播放器主题 433
    25.4.1 打开一个媒体文件 433
    25.4.2 渲染媒体文件 434
    25.4.3 播放媒体文件 434
    25.4.4 实现控制功能 435
    25.4.5 实现拖放功能 438
    25.4.6 实现音量调节功能 438
    25.4.7 添加背景图片 439
    第26章 笑傲江湖—C++网络视频
    监控系统 440
    (视频总计65分钟)
    26.1 系统分析 441
    26.2 系统设计 441
    26.3 系统预览 441
    26.4 数据库设计 442
    26.5 选购监控卡 444
    26.6 具体编程实现 445
    26.6.1 设计公共模块 445
    26.6.2 设计主窗体 449
    26.7 设计管理员登录模块 460
    26.8 设计监控管理模块 462
    26.8.1 监控管理技术分析 462
    26.8.2 编程监控管理 463
    26.8.3 单元测试处理 465
    26.9 设计广角自动监控模块 466
    26.9.1 可行性分析 466
    26.9.2 编程实现 467
    26.9.3 单元测试 469
    26.10 设计视频回放模块 470
    26.11 分析绚丽界面的实现方法 471
查看详情
相关图书 / 更多
C++ 开发从入门到精通
C++程序设计基础教程 第2版
刘厚泉 李政伟 葛欣
C++ 开发从入门到精通
C++那些事
程克非,张兴,崔晓通,秦蔚蓉
C++ 开发从入门到精通
C++编程这样学
胡芳
C++ 开发从入门到精通
C++程序设计案例教程(线上线下混合版)
杨卫明;李晓虹
C++ 开发从入门到精通
C++之旅(第3版)
[美]Bjarne Stroustrup(本贾尼 斯特劳斯特鲁普
C++ 开发从入门到精通
C++高性能编程
(瑞典)比约恩 安德里斯特(Bj.rn Andrist),(瑞典)维克托 塞尔(Viktor Sehr)
C++ 开发从入门到精通
C++ Core Guidelines解析
杨文波 译;[德]赖纳·格林(Rainer Grimm)著 吴咏炜;何荣华;张云潮
C++ 开发从入门到精通
C++开发案例精讲
杨国兴 著
C++ 开发从入门到精通
C++程序设计实践教程(新国标微课版)
马光志
C++ 开发从入门到精通
C++程序设计基础与实践
牛园园;韩洁琼;李晓芳;吴成宇
C++ 开发从入门到精通
C++语言设计教程(计算机专业十四五精品教材)
苏菲、王芬、朱腾 编
C++ 开发从入门到精通
C++程序设计基础教程
丁卫平 程学云 陈文兰 主编;任红建 沈晓红 文万志 副主编