《C++游戏编程》介绍如何用C++语言进行游戏程序开发。全书可分为C++语言的基础语法、面向对象编程技术、标准模板库的应用三个部分,共18章,主要内容包括:概观程序设计,开发环境简介,基本数据类型,运算符与表达式,程序的结构,宏和编译预处理,数组,函数与程序结构,指针和引用,结构、联合、枚举,类与对象,静态成员与友元,继承与多态,运算符重载,模板,标准模板库,I/O流,异常处理等。《C++游戏编程》适合游戏开发人员及游戏相关专业师生学习使用,也可供C++编程爱好者参考。
目录
- 第1章 概观程序设计
- 1.1 程序设计发展历程
- 1.1.1 什么是计算机程序
- 1.1.2 计算机程序语言的发展历史
- 1.2 程序设计思想
- 1.2.1 结构化程序设计思想
- 1.2.2 面向对象程序设计思想
- 本章小结
- 第2章 开发环境简介
- 2.1 VisualStudio.NET集成开发环境
- 2.1.1 创建项目
- 2.1.2 创建文件
- 2.1.3 项目属性设置
- 2.1.4 编译和运行
- 2.1.5 调试
- 2.1.6 辅助工具
- 2.1.7 解决方案资源管理器
- 2.1.8 类视图
- 2.1.9 文件视图
- 2.1.10 资源视图
- 2.1.11 帮助文档的使用
- 2.2 Linux下的开发环境
- 2.2.1 vi编辑器的基本使用
- 2.2.2 vi编辑器的命令
- 2.2 .3vi编辑器环境设置
- 2.2.4 g++编译程序的方法
- 2.2.5 g++编译程序的选项
- 2.2.6 运行应用程序
- 2.2.7 帮助文档的使用
- 2.3 Code Blocks集成开发工具介绍
- 2.3.1 创建工程
- 2.3.2 创建文件
- 2.3.3 项目属性设置
- 2.3.4 编译及运行
- 2.4 绘图函数库的使用
- 本章小结
- 第3章 基本数据类型
- 3.1 基本程序组成结构
- 3.1.1 一个基本的C++程序
- 3.1.2 基本输入输出
- 3.2 字符集和关键字
- 3.3 C++的数据类型概述
- 3.4 基本数据类型
- 3.4.1 整型数据
- 3.4.2 浮点型数据
- 3.4.3 字符型数据
- 3.4.4 bool类型
- 3.4.5 void类型
- 3.4.6 常量与变量
- 3.5 类型转换,
- 3.5.1 隐式类型转换
- 3.5.2 强制类型转换
- 本章小结
- 第4章 运算符与表达式
- 4.1 概述
- 4.2运算符和表达式
- 4.2.1 运算符和表达式的种类
- 4.2.2 左值和右值
- 4.3算术运算符和算术表达式
- 4.4 自增和自减运算符
- 4.5 赋值运算符和赋值表达式
- 4.5.1 赋值运算符与赋值运
- 4.5.2 复合赋值运算符
- 4.5.3 赋值表达式
- 4.6 关系运算符和关系表达式
- 4.7 逻辑运算符和逻辑表达式
- 4.7.1 逻辑运算符
- 4.7.2 逻辑表达式
- 4.8 size of运算符
- 4.9 条件运算符和条件表达式
- 4.1 0逗号运算符和逗号表达式
- 4.1 1优先性和结合性
- 本章小结
- 习题
- 第5章 程序的结构
- 5.1 顺序结构
- 5.2 分支结构程序设计
- 5.2.1 if..else结构
- 5.2.2 switch语句
- 5.2.3 goto语句
- 5.3 循环结构程序设计
- 5.3.1 for语句
- 5.3.2 while语句
- 5.3.3 do.while语句
- 5.3.4 循环的嵌套
- 5.4 break、continue语句
- 5.4.1 break语句
- 5.4.2 continue语句
- 本章小结
- 习题
- 第6章 宏和编译预处理
- 6.1 宏定义
- 6.2 头文件包含
- 6.3 条件编译
- 6.4 其他预处理指令
- 本章小结
- 习题
- 第7章 数组
- 7.1 为何需要数组
- 7.2 声明数组
- 7.3 访问数组元素
- 7.4 数组的初始化
- 7.5 数组应用举例
- 7.5.1 选择排序
- 7.5.2 冒泡排序
- 7.5.3 更多排序算法
- 7.6 字符串与字符数组
- 7.7 数组作为函数参数
- 7.8 二维数组
- 7.8.1 二维数组的定义
- 7.8.2 二维数组中元素的引用
- 7.8.3 二维数组的初始化
- 7.8.4 二维数组程序举例
- 7.9 多维数组
- 7.9.1 多维数组的定义
- 7.9.2 多维数组的引用
- 本章小结
- 习题
- 第8章 函数与程序结构
- 8.1 函数的概念
- 8.2 函数定义
- 8.3 函数声明
- 8.4函数调用
- 8.5 变量的作用域类型
- 8.5.1 局部变量
- 8.5.2 全局变量
- 8.6 变量的存储类型
- 8.6.1 动态存储变量
- 8.6.2 静态存储变量
- 8.7 函数返回值
- 8.8 默认函数参数
- 8.9 内联函数
- 8.10 函数重载
- 8.11 作用域
- 8.11.1 局部作用域
- 8.11.2 函数作用域
- 8.11.3 函数原型作用域
- 8.12 可见性与生命期
- 8.12.1 可见性
- 8.12.2 生命期
- 8.12.3 补充说明
- 8.13 综合应用举例
- 8.14 递归函数
- 8.14.1 递归函数举例
- 8.14.2 递归调用过程分析
- 8.14.3 递归程序设计方法
- 8.15 程序文件结构
- 8.15.1 头文件
- 8.15.2 文件作用域
- 8.15.3 多文件结构
- 8.15.4 外部存储类型
- 本章小结
- 习题
- 第9章 指针和引用
- 9.1 指针的概念
- 9.2 指针声明和赋值
- 9.3 通过指针访问数据
- 9.4 指针运算
- 9.5 动态内存分配
- 9.5.1 malloc()和free()函数
- 9.5.2 new和delete运算符
- 9.5.3 指针与数组
- 9.6 动态内存分配的应用
- 9.6.1 应用举例1
- 9.6.2 应用举例2
- 9.7 const指针
- 9.8 指针作为函数参数
- 9.9 指针函数
- 9.10 函数指针
- 9.11 指针数组
- 9.12 指向指针的指针
- 9.13 常见的内存错误及其对策
- 9.14 引用的定义
- 9.15 使用引用访问数据
- 9.16 引用与指针对比
- 9.17 引用做函数的参数
- 9.18 应用举例
- 9.19 返回引用
- 9.20 函数调用作为左值
- 9.21 const限定的引用
- 9.22 返回堆中变量的引用
- 本章小结
- 习题
- 第10章 结构、联合、枚举
- 10.1 自定义数据类型概述
- 10.2 结构的定义
- 10.3 结构初始化
- 10.4 访问结构成员
- 10.5 结构与数组
- lO.6 结构与指针
- 10.7 结构与引用
- 10.8 在函数中使用结构
- 10.9 结构的复杂形式
- 10.1 0链表
- 10.1 1联合
- 10.1 2枚举
- 本章小结
- 习题
- 第11章 类与对象
- 11.1 抽象概述
- 11.2 类的概念
- 11.3类的定义
- 11.3.1 类与结构
- 11.3.2 类的声明
- 11.3.3 类成员的访问控制
- 11.3.4 数据成员
- 11.3.5 成员函数
- 11.3.6 重载成员函数
- 11.3.7 类定义的注意事项
- 11.3.8 类声明和类定义
- 11.4 对象
- 11.4.1 类与对象的区别和联系
- 11.4.2 对象的声明
- 11.4.3 访问数据成员
- 11.4.4 调用成员函数
- 11.5 综合应用
- 11.6 构造函数
- 11.6.1 为何需要构造函数
- 11.6.2 构造函数的定义
- 11.6.3 带参数构造函数
- 11.6.4 默认构造函数
- 11.6.5 重载构造函数
- 11.7 类对象成员的初始化
- 11.8 析构函数
- 11.8.1 为何需要析构函数
- 11.8.2 析构函数的定义
- 11.8.3 何时需要使用析构函数
- 11.9 堆栈和内存分配
- 11.9.1 内存管理概述
- 11.9.2 变量与对象的空间分配时机与初始化
- 11.9.3 为什么使用new/delete操作符
- 11.10 拷贝构造函数
- 11.10.1 程序出错的原因分析
- 11.10.2 拷贝构造函数
- 11.10.3 默认拷贝构造函数
- 11.10.4 浅拷贝与深拷贝
- 11.11 临时对象和无名对象
- 11.11.1 临时对象
- 11.11.2 无名对象
- 11.12const成员
- 本章小结
- 习题
- 第12章 静态成员与友元
- 12.1 静态成员
- 12.1.1 为何需要静态成员
- 12.1.2 静态成员变量
- 12.1 .3静态成员函数
- 12.2 友元
- 12.2.1 为何需要友元
- 12.2.2 友元函数
- 12.2.3 友元类
- 第13章 继承与多态
- 13.1 继承与派生的概念
- 13.2 继承的实现方式
- 13.3 继承类的构造与析构
- 13.3.1 继承类的构造
- 13.3.2 构造函数的参数传递
- 13.4 基类访问控制
- 13.5 多态与虚函数
-
13.5.1 为什么使用虚函数