《C++入门很简单(附光盘)》由池剑锋编著,本书有何特色
1.提供配套的多媒体教学视频
本书专门录制了配套多媒体教学视频,帮助读者直观而高效地学习,从而达到事半功倍的效果。这些视频和本书实例源代码收录于本书配套光盘中。
2.起点较低,不需要程序设计的基础知识
一些初学者在学C++语言之前并没有接触过其他程序设计语言,本书从程序设计基础知识讲起,详细介绍C++的语法知识和要点,使读者对其有充分了解,从而具备一定的程序设计基础。
3.划分有序,编排合理
本书将C++程序设计划分为4大部分,分别是面向结构程序设计、面向对象程序设计、泛型编程以及输入输出流。这4个部分在编排逻辑上依次渐进,后续知识点需要前面的知识作为铺垫,知识结构与脉络清晰,便于读者理解知识点。
4.诙谐幽默,穿插了大量生活化的例子
本书避免用艰涩难懂、枯燥乏味的术语云山雾罩地分析问题,代之以轻松活泼、幽默直白的讲解。书中的知识点尽量先给现实生活中的例子,然后与之对比或者类比,让读者理解。
《C++入门很简单(附光盘)》由池剑锋编著,是一本与众不同的面向初学者的C++读物,不需要读者有太多的基础。本书以简单实用为原则,讲解通俗易懂,循序渐进,避免了云山雾罩、晦涩难懂。本书语言轻松活泼,用类比、对比、比喻等写作手法,并配合图解教学,对难点之处又给出了必要提示;书中的每个知识点都对应相应的编程实例,便于读者一边学习一边动手实践,既可以提高读者的动手能力,也可以激发学习兴趣。本书配1张光盘,内容为本书配套教学视频及源代码。另外,光盘中还赠送了Visual C++项目开发的源代码及教学视频。
本书共19章,分为5篇。第1篇C++编程基础介绍了程序设计基本概念、基本数据类型和运行符、数组、指针与引用、结构体和共用体、函数封装;第2篇面向对象程序设计介绍了类和对象、继承、虚函数和多态性;第3篇C++模板介绍了函数模板、类模板和标准模板库;第4篇介绍了输入/输出流和文件流、异常处理、程序预处理、string类和其他信息;第5篇C++项目实战介绍了一个学生管理系统的开发。
《C++入门很简单(附光盘)》适合C++编程新手阅读;有一定基础的读者,也可通过本书进一步理解C++的各个重要概念及知识点;对于大、中专院校的学生和培训班的学员,本书也不失为一本好教材。
第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下载和安装大管家——VisualC++6.0
1.6.2大管家的责任
1.6.3迈出第一步——第一个C++程序
1.7C++编程简述
1.7.1C++语言特点
1.7.2C++的良好编程风格
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.1for重复结构及示例
2.4.2while重复结构及示例
2.4.3do/while重复结构及示例
2.4.4if-else结构及示例
2.4.5switch多选结构
2.4.6break和continue语句
2.4.7goto语句
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.2delete释放动态申请的内存
4.4.3malloc和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.5main函数的参数--程序的入口
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.4class和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.2this指针
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.1STL概述
14.1.1STL组件
14.1.2容器(container)
14.1.3迭代器(iterator)
14.1.4算法(algorithm)
14.1.5STL头文件
14.2使用vector容器
14.2.1创建Vector容器
14.2.2访问vector容器中的元素
14.2.3vector基本操作
14.2.4vector容器和数组
14.2.5输入/输出流迭代器
14.3创建自己的迭代器
14.3.1给算法传送迭代器
14.3.2STL迭代器类型要求
14.3.3STL迭代器成员函数的条件
14.3.4插入迭代器
14.4list容器
14.4.1创建list容器
14.4.2访问list容器中的元素
14.4.3list容器上的操作
14.5本章小结
14.6本章习题
第4篇 输入/输出操作篇
第15章 输入/输出流和文件流(教学视频:32分钟)
15.1C++中的输入/输出流
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.1strstream相关类
15.3.2sstream相关类
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.3auto_ptr与内存泄漏
16.5本章小结
16.6本章习题
第17章 程序的预处理(教学视频:15分钟)
17.1预处理简介
17.2C++预处理程序
17.3include(包含)文件
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.1string类介绍和声明
18.2string的输入/输出
18.3string的基本操作
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.1const_cast操作符
18.5.2static_cast操作符
18.5.3reinterpret_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.1student学生类
19.2.2filemanage数据操作类
19.2.3Operstu学生信息操作类
19.3学生管理系统总结2