内容简介
第1篇C++编程基础篇
第1章 C++编程前奏(教学视频:19分钟)
1.1计算机的五脏六腑
1.1.1控制器
1.1.2运算器
1.1.3存储器
1.1.4输入设备
1.1.5输出设备
1.2操作系统的进化史
1.3编程语言的家谱
1.3.1机器语言
1.3.2汇编语言
1.3.3高级语言
1.4面向过程程序设计
1.5面向对象程序设计
1.5.1面向对象的方法由来——万物皆是对象
1.5.2面向对象的基本概念
1.6搭建C++开发环境
1.6.1下载和安装大管家——Visual C++6.0
1.6.2大管家的责任
1.6.3迈出第一步——第一个C++程序
1.7 C++编程简述
1.7.1 C++语言特点
1.7.2 C++的良好编程风格
1.8本章小结
1.9本章习题
第2章 开始C++开发之旅(教学视频:27分钟)
2.1机器的螺丝——基本数据类型和常用库函数
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.2运算符和表达式
2.2.1算术运算符
2.2.2逻辑运算符
2.2.3关系运算符
2.2.4位操作运算符
2.2.5赋值运算符和相等性运算符(==)
2.2.6字节数运算符(sizeof)
2.2.7运算符的优先级和结合性
2.2.8算术表达式
2.2.9逻辑表达式
2.2.10关系表达式
2.2.11条件表达式
2.2.12赋值表达式
2.2.13逗号表达式
2.3类型转换
2.3.1强制类型转换
2.3.2自动类型转换
2.4控制结构和语句
2.4.1 for重复结构及示例
2.4.2 while重复结构及示例
2.4.3 do/while重复结构及示例
2.4.4 if-else结构及示例
2.4.5 switch多选结构
2.4.6 break和continue语句
2.4.7 goto语句
2.5预处理
2.5.1文件包含命令(#include)
2.5.2宏定义命令(#define)
2.6本章小结
2.7本章习题
第3章 数组和字符串(教学视频:30分钟)
3.1一维数组
3.1.1一维数组定义
3.1.2一维数组的初始化
3.1.3一维数组元素的引用
3.1.4一维数组示例
3.2多维数组
3.2.1多维数组定义
3.2.2初始化多维数组
3.2.3多维数组应用举例
3.3字符数组和字符串
3.3.1字符数组的定义和赋值
3.3.2字符串的输入/输出
3.3.3字符串应用示例
3.4本章小结
3.5本章习题
第4章 指针与引用(教学视频:46分钟)
4.1市场经济——指针的定义及格式
4.1.1什么是指针
4.1.2声明一个指针
4.1.3初始化指针变量
4.1.4指向指针的指针
4.2指针的运算
4.2.1指针的赋值运算和增减值运算
4.2.2指针比较运算和相减运算
4.2.3指针运算和地址运算
4.3指针和数组
4.3.1使用数组名的指针表示法
4.3.2指针数组
4.3.3指向数组的指针
4.4动态内存分配
4.4.1使用new动态分配内存
4.4.2 delete释放动态申请的内存
4.4.3 malloc和free使用
4.4.4内存动态申请注意事项
4.4.5转换指针
4.5常量指针和指向常量的指针
4.5.1常量指针
4.5.2指向常量的指针
4.6人人都可以有绰号——引用
4.6.1引用和引用的创建方法
4.6.2引用和指针关系
4.7本章小结
4.8本章习题
第5章 结构体和共用体(教学视频:51分钟)
5.1一串精美的珍珠——结构体
5.1.1结构体的声明
5.1.2结构体变量的定义和使用
5.1.3结构体变量初始化
5.1.4结构体数组定义和引用
5.1.5结构体指针
5.1.6结构体应用举例
5.2大家的公共教室——共用体
5.2.1共用体的声明
5.2.2共用体变量定义和使用
5.2.3共用体和结构体差异
5.2.4共用体数组和指针
5.2.5共用体应用举例
5.3本章小结
5.4本章习题
第6章 使用函数编程(教学视频:45分钟)
6.1神秘的黑盒子——函数
6.1.1程序模块化的优势
6.1.2编写一个函数
6.2理解函数
6.2.1函数的定义
6.2.2函数的声明
6.3函数参数和返回值
6.3.1什么是实参和形参
6.3.2参数类型转换
6.3.3函数参数默认值设置
6.3.4函数参数值传递
6.3.5函数参数指针传递
6.3.6函数参数引用传递
6.3.7函数返回值实现
6.4递归函数和内联函数
6.4.1递归函数示例
6.4.2内联(inline)函数示例
6.5函数的重载
6.5.1重载函数特征
6.5.2实现重载函数
6.5.3重载函数的二义性问题
6.6函数存储类型
6.6.1外部函数
6.6.2内部函数
6.7本章小结
6.8本章习题
第7章 函数高级应用(教学视频:37分钟)
7.1小心地雷——内存操作问题
7.1.1内存泄漏
7.1.2野指针
7.2函数与结构体、共用体
7.2.1结构体和共用体作为函数参数
7.2.2结构体和共用体作为返回值
7.3函数与数组
7.3.1一维数组作为函数参数
7.3.2二维数组作为函数参数
7.4函数指针
7.4.1函数指针的定义
7.4.2把函数作为参数传递
7.4.3函数指针数组
7.5 main函数的参数——程序的入口
7.6本章小结
7.7本章习题
第2篇 面向对象程序设计篇
第8章 类和对象之基础(教学视频:43分钟)
8.1类和对象的基本概念——抽象与具体辩证
8.1.1类的概念
8.1.2对象概念
8.1.3类和对象的关系
8.2类的定义格式和对象定义方法
8.2.1类的定义格式
8.2.2对象的定义方法
8.2.3对象成员的表示
8.2.4 class和struct
8.3一个对象的生与死
8.3.1默认构造函数
8.3.2自定义构造函数
8.3.3析构函数
8.4抄作业的秘密——拷贝构造函数
8.4.1理解拷贝构造函数
8.4.2默认的拷贝构造函数
8.4.3拷贝构造函数方法的选择
8.5公共饮水机——静态成员
8.5.1静态数据成员
8.5.2静态成员函数
8.6只可远观而不可亵玩——常成员
8.6.1常数据成员
8.6.2常成员函数
8.7类的类型转换
8.7.1类型隐式转换
8.7.2类的类型和一般数据类型之间的转换
8.7.3隐式转换存在的二义性问题
8.8本章小结
8.9本章习题
第9章 类和对象之进阶(教学视频:44分钟)
9.1类的作用域和对象的生存期
9.1.1类的作用域
9.1.2对象的生存期
9.2严格的海关——友元函数和友元类
9.2.1友元函数
9.2.2友元类
9.3对象指针和数组
9.3.1对象指针
9.3.2 this指针
9.3.3对象引用
9.3.4对象数组
9.3.5对象指针数组
9.4按需选择——运算符重载
9.4.1运算符重载的条件
9.4.2重载赋值运算符
9.4.3重载算术运算符
9.4.4重载下标运算符
9.4.5重载类型转换
9.4.6重载new和delete运算符
9.4.7智能指针
9.5本章小结
9.6本章习题
第10章 继承(教学视频:45分钟)
10.1父子关系——何谓继承
10.2继承和聚合
10.3基类和派生类
10.3.1从基类派生出新类
10.3.2继承下的访问控制
10.3.3派生类的构造函数和析构函数
10.3.4基类和派生类的类型转换
10.4多重继承
10.4.1多个基类
10.4.2多重继承成员的模糊性
10.4.3重复继承
10.4.4虚基类
10.5本章小结
10.6本章习题
第11章 虚函数和多态性(教学视频:21分钟)
11.1标准接口——什么是多态性
11.2动态绑定和静态绑定
11.2.1静态绑定
11.2.2虚函数
11.2.3动态绑定
11.3空瓶子——抽象基类和纯虚函数
11.3.1纯虚函数的声明和定义
11.3.2抽象类
11.3.3虚析构函数
11.4类成员指针
11.4.1数据成员指针
11.4.2成员函数指针
11.5本章小结
11.6本章习题
第3篇 C++模板篇
第12章 函数模板(教学视频:16分钟)
12.1认识函数模板
12.1.1为什么使用模板
12.1.2定义函数模板
12.1.3使用函数模板
12.2函数模板的参数
12.3重载函数模板
12.3.1函数模板之间的重载
12.3.2显示特化的重载
12.3.3普通函数重载
12.4本章小结
12.5本章习题
第13章 类模板(教学视频:21分钟)
13.1认识类模板
13.2定义类模板
13.2.1模板参数
13.2.2简单的类模板
13.2.3创建类模板实例
13.2.4类模板的静态成员
13.2.5非类型的类模板参数
13.2.6非类型的参数实例
13.2.7默认参数模板
13.3模板显式实例化
13.4类模板的友元
13.5模板的嵌套
13.6本章小结
13.7本章习题
第14章 标准模板库(STL)(教学视频:28分钟)
14.1 STL概述
14.1.1 STL组件
14.1.2容器(container)
14.1.3迭代器(iterator)
14.1.4算法(algorithm)
14.1.5 STL头文件
14.2使用vector容器
14.2.1创建Vector容器
14.2.2访问vector容器中的元素
14.2.3 vector基本操作
14.2.4 vector容器和数组
14.2.5输入/输出流迭代器
14.3创建自己的迭代器
14.3.1给算法传送迭代器
14.3.2 STL迭代器类型要求
14.3.3 STL迭代器成员函数的条件
14.3.4插入迭代器
14.4 list容器
14.4.1创建list容器
14.4.2访问list容器中的元素
14.4.3 list容器上的操作
14.5本章小结
14.6本章习题
第4篇 输入/输出操作篇
第15章 输入/输出流和文件流(教学视频:32分钟)
15.1 C++中的输入/输出流
15.1.1什么是流
15.1.2输出流
15.1.3输入流
15.1.4流格式状态
15.1.5流错误状态
15.2文件流
15.2.1写入文件
15.2.2读取文件
15.2.3文件随机访问
15.2.4随机访问文件的读写操作
15.3字符串流
15.3.1 strstream相关类
15.3.2 sstream相关类
15.4对象和流
15.4.1<<操作符重载
15.4.2>>操作符重载
15.5本章小结
15.6本章习题
第16章 异常处理(教学视频:25分钟)
16.1认识异常
16.1.1了解异常处理
16.1.2抛出异常
16.1.3导致抛出异常的代码
16.2用类对象作为异常
16.2.1用catch处理程序和异常
16.2.2用基类处理程序捕获派生类的异常
16.2.3重新抛出异常
16.2.4捕获所有异常
16.3抛出异常的函数
16.3.1函数try块
16.3.2在构造函数中抛出异常
16.3.3异常和析构函数
16.3.4一个简单的异常处理例子
16.4其他典型异常
16.4.1堆栈解退
16.4.2处理new失败
16.4.3 auto_ptr与内存泄漏
16.5本章小结
16.6本章习题
第17章 程序的预处理(教学视频:15分钟)
17.1预处理简介
17.2 C++预处理程序
17.3 include(包含)文件
17.4预处理指令#define
17.4.1预定义符号常量
17.4.2带参数的宏定义和不带参数的宏定义
17.4.3宏定义取消
17.5条件编译
17.5.1 #if-#else-#endif指令
17.5.2 #if-#elif-#endif指令
17.5.3 #ifdef-#endif指令
17.5.4 #ifndef-#endif指令
17.6 #pragam指令
17.7本章小结
17.8本章习题
第18章 string类和其他信息(教学视频:21分钟)
18.1 string类介绍和声明
18.2 string的输入/输出
18.3 string的基本操作
18.3.1赋值和拼接
18.3.2比较字符串
18.3.3子串
18.3.4交换字符串
18.3.5字符插入
18.3.6替换字符
18.3.7查找
18.3.8转换为C风格的char字符串
18.4运行时类型信息(RTTI)
18.5类型转换操作符
18.5.1 const cast操作符
18.5.2 static cast操作符
18.5.3 reinterpret cast操作符
18.6本章小结
18.7本章习题
第5篇 项目实战篇
第19章 学生管理系统项目案例(教学视频:48分钟)
19.1学生管理系统项目需求与设计
19.1.1数据库设计
19.1.2功能设计
19.1.2项目需求及功能分析
19.1.3功能模块划分及设计
19.2学生管理系统编程实现
19.2.1 student学生类
19.2.2 filemanage数据操作类
19.2.3 Operstu学生信息操作类
19.3学生管理系统总结