本书是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的范例程序详细而全面地阐述了C十+的基本概念和技术,包括控制输入/输出、循环和数组、面向对象编程、模板和创建C++应用程序等。这些内容被组织成结构合理、联系紧密的章节;每章都提供了范例程序清单,并 辅以范例输出和代码分析,以演示该章介绍的主题。为加深读者对所学内容的理解,每章最后都提供了常见问题及其答案以及测验和练习。读者可对照附录d提供的测验和练习答案,了解自己对所学内容的掌握程度。
本书是针对C++初学者编写的,不要求读者有C语言方面的背景知识,可作为高等院校教授C++课程的教材,也可供初学者自学C++时使用。
第1周课程简介
第1章 绪论
1.1 c++简史
1.1.1 解决问题
1.1.2 过程化编程、结构化编程和面向对象编程
1.1.3 面向对象编程(oop)
1.1.4 c抖和面向对象编程
1.2 c++的发展历程
1.3 应该先学习c语言吗
1.4 c++、java和c#
1.5 微软的c++可控扩展
1.6 ansi标准
1.7 编程准备
1.8 开发环境
1.9 创建程序的步骤
1.9.1 用编译器生成对象文件
1.9.2 用链接器生成可执行文件
1.10 程序开发周期
1.11 hello.cpp:第一个c++程序
1.12 编译器初步
.1.13 编译错误
1.14 小结
1.15 问与答
1.16 作业
1.16.1 测验
1.16.2 练习
第2章 c++程序的组成部分
2.1 一个简单程序
2.2 cout简介
2.3 使用标准名称空间
2.4 对程序进行注释
2.4.1 注释的类型
2.4.2 使用注释
2.4.3 有关注释的警告
2.5 函数
2.5.1 使用函数
2.5.2 方法和函数
2.6 小结
2.7 问与答
2.8 作业
2.8.1 测验
2.8.2 练习
第3章 使用变量和常量
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.4 给变量赋值
3.5 使用typedef来创建别名
3.6 何时使用short 和 long
3.6.1 unsigned 整型变量的回绕
3.6.2 signed 整型变量的回绕
3.7 使用字符
3.7.1 字符和数字
3.7.2 特殊打印字符
3.8 常量
3.8.1 字面常量
3.8.2 符号常量
3.9 枚举常量
3.10 小结
3.11 问与答
3.12 作业
3.12.1 1j验
3.12.2 练习
第4章 创建表达式和语句
4.1 语句简介
4.1.1 使用空白
4.1.2 语句块和复合语句
4.2 表达式
4.3 使用运算符
4.3.1 赋值运算符
4.3.2 数学运算符
4.3.3 整数除法和求模
4.4 赋值运算符与数学运算符的组合
4.5 递增和递减
4.6 理解运算符优先级
4.7 括号的嵌套
4.8 真值的本质
4.9 if语句
4.9.1 缩进风格
4.9.2 else语句
4.9.3 高级if语句
4.10 在嵌套if语句中使用大括号
4.11 使用逻辑运算符
4.11.1 逻辑and运算符
4.11.2 逻辑or运算符
4.11.3 逻辑not运算符
4.12 简化求值
4.13 关系运算符的优先级
4.14 再谈真和假
4.15 条件运算符(三日运算符)
4.16 小结
4.17 问与答
4.18 作业
4.18.1 测验
4.18.2 练习
第5章 组织成函数
5.1 什么是函数
5.2 返回值、参数和实参
5.3 声明和定义函数
5.3.1 数原型
5.3.2 定义函数
5.4 函数的执行
5.5 确定变量的作用域
5.5.1 局部变量
5.5.2 作用域为语句块的局部变量
5.6 参数是局部变量
5.6.1 全局变量
5.6.2 有关全局变量的注意事项
5.7 创建函数语句时的考虑因素
5.8 再谈函数实参
5.9 再谈返回值
5.10 默认参数
5.11 重载函数
5.12 函数特有的主题
5.12.1 内联函数
5.12.2 递归
5.13 函数的工作原理
5.13.1 抽象层次
5.13.2 划分ram
5.13.3 堆栈和函数
5.14 小结
5.15 问与答
5.16 作业
5.16.1 测验
5.16.2 练习
第6章理解面向对象编程
6.1 c++是面向对象的吗
6.2 创建新类型
6.3 类和成员简介
6.3.1 声明类
6.3.2 有关命名规则的说明
6.3.3 定义对象
6.3.4 类与对象
6.4 访问类成员
6.4.1 给对象而不是类赋值
6.4.2 类不能有没有声明的功能
6.5 私有和公有
6.6 实现类方法
6.7 添加构造函数和析构函数
6.7.1 默认构造函数和析构函数
6.7.2 使用默认构造函数
6.8 const成员函数
6.9 接口与实现
6.10 将类声明和方法定义放在什么地方
6.11 内联实现
6.12 将他类用作成员数据的类
6.13 结构
6.14 小结
6.15 问与答
6.16 作业
6.16.1 测验
6.16.2 练习
第7章 再谈程序流程
7.1 循环
7.1.1 循环的鼻祖:goto
7.1.2 为何避免使用goto语句
7.2 使用while循环
7.2.1 更复杂的while语句
7.2.2 continue和break简介
7.2.3 while(true)循环
7.3 实现do_while循环
7.4 使用do_while
7.5 for循环
7.5.1 高级for循环
7.5.2 空for循环
7.5.3 循环嵌套
7.5.4 for循环中声明的变量的作用域
7;6 循环小结
7.7 使用switch语句控制程序流程使用switch语句来处理菜单
7.8 小结
7.9 问与答
7.10 作业
7.10.1 测验
7.10.2 练习
第1周复习
第2周课程简介
第8章 理解指针
8.1 什么是指针
8.1.1 内存简介
8.1.2 获取变量的内存地址
8.1.3 将变量的地址存储到指针中
8.1.4 指针名
8.1.5 获取指针指向的变量的值
8.1.6 使用间接运算符解除引用
8.1.7 指针、地址和变量
8.1.8 使用指针来操纵数据
8.1.9 查看地址
8.2 为什么使用指针
8.3 栈和自由存储区(堆)
8.3.1 使用关键字new来分配内存
8.3.2 使用关键字delete归还内存
8.4 再谈内存泄漏
8.5 在自由存储区上创建对象
8.6 删除自由存储区中的对象
8.7 访问数据成员
8.8 在自由存储区中创建成员数据
8.9 this指针
8.10 迷途指针
8.11 使用const指针
8.11.1 const指针和const成员函数
8.11.2 使用const this指针
8.12 小结
8.13 问与答
8.14 作业
8.14.1 测验
8.14.2 练习
第9章 使用引用
9.1 什么是引用
9.2 将地址运算符用于引用
9.3 引用对象
9.4 空指针和空引用
9.5 按引用传递函数参数
9.5.1 使用指针让swap()管用
9.5.2 使用引用来实现swap()
9.6 理解函数头和原型
9.7 返回多个值
9.8 按引用传递以提高效率
9.8.1 传递const指针
9.8.2 用引用代替指针
9.9 何时使用引用和指针
9.10 混合使用引用和指针
9.11 返回指向不在作用域中的对象的引用
9.12 指针归谁所有
9.13 小结
9.14 问与答
9.15 作业
9.15.1 测验
9.15.2 练习
第10章 有关函数的高级主题
10.1 重载成员函数
10.2 使用默认值
10.3 在默认值和重载函数之间做出选择
10.4 默认构造函数
10.5 重载构造函数
10.6 初始化对象
10.7 复制构造函数
10.8 运算符重载
10.8.1 编写一个递增函数
10.8.2 重载前缀运算符
10.8.3 算符重载函数的返回类型
10.8.4 返回无名临时对象
10.8.5 使用this指针
10.8.6 重载后缀运算符
10.8.7 前缀和后缀之间的差别
10.8.8 重载双目数学运算符
10.8.9 运算符重载中存在的问题
10.8.10 对运算符重载的限制
10.8.11 重载什么
10.8.12 赋值运算符
10.9 处理数据类型转换
10.10 转换运算符
10.11 小结
10.12 问与答
10.13 作业
10.13.1 测验
10.13.2 练习
第11章 面向对象分析及设计
11.1 建立模型
11.2 软件设计:建模语言
11.3 软件设计:过程
11.3.1 迭代式开发和瀑布式开发
11.3.2 迭代式开发过程
11.4 第1步:概念化阶段——从愿景开始
11.5 第2步:分析阶段——收集需求
11.5.1 用例
11.5.2 应用分析
11.5.3 系统分析
11.5.4 规划文档
11.5.5 可视化
11.5.6 可交付品
11.6 第3步:设计阶段
11.6.1 什么是类
11.6.2 转换
11.6.3 其他转换
11.6.4 建立静态模型
11.6.5 动态模型
11.7 第4~6步:实现、测试和交付
11.8 迭代
11.9 小结
11.10 问与答
11.11 作业
11.11.1 测验
11.11.2 练习
第12章 实现继承
12.1 什么是继承
12.1.1 继承和派生
12.1.2 动物世界
12.1.3 派生的语法
12.2 私有和保护
12.3 构造函数和析构函数的继承性
12.4 覆盖基类函数
12.4.1 隐藏基类方法
12.4.2 调用基类方法
12.5 虚方法
12.5.1 虚函数的工作原理
12.5.2 通过基类指针访问派生类的方法
12.5.3 切除
12.5.4 创建虚析构函数
12.5.5 虚复制构造函数
12.5.6 使用虚方法的代价
12.6 小结
12.7 问与答
12.8 作业
12.8.1 测验
12.8.2 练习
第13章 管理数组和字符串
13.1 什么是数组
13.1.1 访问数组元素
13.1.2 在数组末尾后写入数据
13.1.3 护栏柱错误
13.1.4 初始化数组
13.1.5 声明数组
13.2 使用对象数组
13.2.1 声明多维数纽
13.2.2 初始化多维数组
13.3 指针数组
13.4 指针算术
13.5 在自由存储区声明数组
13.5.1 数组指针和指针救组
13.5.2 指针和数组名
13.5.3 删除自由存储区中的数组
13.5.4 在运行阶段调整数组大小
13.6 字符数组和字符串
13.7 使用方法strcpy()和stcpy()
13.8 string类
13.9 链表和其他结构
13.10 创建数组类
13.11 小结
13.12 问与答
13.13 作业
13.13.1 1 验
13.13.2 练习
第14章 多态
14.1 单继承存在的问题
14.1.1 提升
14.1.2 向下转换
14.1.3 将对象添加到链表中
14.2 多重继承
14.2.1 多重继承对象的组成部分
14.2.2 多重继承对象中的构造函数
14.2.3 歧义解析
14.2.4 从共同基类继承
14.2.5 虚继承
14.2.6 多重继承存在的问题
14.2.7 混合(功能)类
14.3 抽象数据类型
14.3.1 纯虚函数
14.3.2 实现纯虚函数
14.3.3 复杂的抽象层次结构
14.3.4 哪些类是抽象的
14.4 小结
14.5 问与答
14.6 作业
14.6.1 测验
14.6.2 练习
第2周复习
第3周课程简介
第15章 特殊类和函数
15.1 在同一种类型的对象之间共享数据:静态成员数据
15.2 静态成员函数
15.3 函数指针
15.3.1 为什么使用函数指针
15.3.2 函数指针数组
15.3.3 将函数指针传递给其他函数
15.3.4 将typedef用于函数指针
15.4 成员函数指针
15.5 小结
15.6 问与答
15.7 作业
15.7.1 测验
15.7.2 练习
第16章 高级继承
16.1 聚合
16.1.1 访问被聚合类的成员
16.1.2 控制对被聚合成员的访问
16.1.3 聚合的代价
16.1.4 按值传递导致复制
16.2 以继承方式实现和聚合/代理
16.3 私有继承
16.4 添加友元类
16.5 友元函数
16.6 友元函数和运算符重载
16.7 重载插入运算符
16.8 小结
16.9 问与答
16.10 作业
16.10.1 测验
16.10.2 练习
第17章 处理流
17.1 流概述
17.1.1 数据流的封装
17.1.2 解缓冲技术
17.2 流和缓冲区
17.3 标准i/o对象
17.4 重定向标准流
17.5 使用cin进行输入
17.5.1 输入字符串
17.5.2 字符串的问题
17.5.3 ]]的返回值
17.6 cin的其他成员函数
17.6.1 单字符输入
17.6.2 从标准输入读取字符串
17.6.3 使用cin.ignore()
17.6.4 查看和插入字符:peek()和putback()
17.7 使用cout进行输出
17.7.1 刷新输出
17.7.2 执行输出的函数
17.7.3 控制符、标记和格式化指令
17.8 流和printf()函数之比较
17.9 文件输入和输出
17.10 使用 ofstream
17.10.1 条件状态
17.10.2 打开文件进行输入和输出
17.10.3 修改ofstream打开文件时的默认行为
17.11 进制文件和文本文件
17.12 命令行处理
17.13 小结
17.14 问与答
17.15 作业
17.15.1 测验
17.15.2 练习
第18章 创建和使用名称空间
18.1 简介
18.2 根据名称解析函数和类
18.2.1 变量的可见性
18.2.2 链接性
18.2.3 静态全局变量
18.3 创建名称空间
18.3.1 声明和定义类型
18.3.2 在名称空间外定义函数
18.3.3 添加新成员
18.3.4 嵌套名称空间
18.4 使用名称空间
18.5 关键字using
18.5.1 using编译指令
18.5.2 using声明
18.6 名称空间别名
18.7 未命名的名称空间
18.8 标准名称空间std
18.9 小结
18.10 问与答
18.11 作业
18.11.1 测验
18.11.2 练习
第19章 模板
19.1 什么是模板
19.2 创建模板定义
19.2.1 使用名称
19.2.2 实现模板
19.3 将实例化的模板对象传递给函数
19.4 模板和友元
19.4.1 非模板友元类和函数
19.4.2 通用模板友元类和函数
19.5 使用模板对象
19.5.1 使用具体化函数
19.5.2 静态成员和模板
19.6 标准模板库
19.6.1 使用容器
19.6.2 理解顺序容器
19.6.3 理解关联容器
19.6.4 使用算法类
19.7 小结
19.8 问与答
19.9 作业
19.9.1 测验
19.9.2 练习
第20章 处理错误和异常
20.1 程序中的各种错误
20.2 异常的基本思想
20.2.1 异常处理的组成部分
20.2.2 手工引发异常
20.2.3 创建异常类
20.3 使用try块和catch块
20.4 捕获异常的工作原理
20.4.1 使用多条catch语句
20.4.2 异常层次结构
20.5 异常中的数据及给异常对象命名
20.6 异常和模板,
20.7 没有错误的异常
20.8 关于代码蜕变
20.9 bug和调试
20.9.1 断点
20.9.2 监视点
20.9.3 查看内存
20.9.4 查看汇编代码
20.10 小结
20.11 问与答
20.12 作业
20.12.1 测验
20.12.2 练习
第21章 杂项内容
21.1 预处理器和编译器
21.2 预处理器指令#define
21.2.1 使用gdefine来定义常量
21.2.2 将#define用于检测
21.2.3 预编译器命令#lse
21.3 包含和多重包含防范
21.4 宏
21.5 字符串操纵
21.5.1 字符串化
21.5.2 拼接
21.6 预定义的宏
21.7 assert()宏
21.7.1 使用assert()进行试
21.7.2 assert()与异常之比较
21.7.3 副作用
21.7.4 类的不变量
21.7.5 打印中间值
21.7.6 宏与函数及模板之比较
21.8 内联函数
21.9 位运算
21.9.1 “与”运算符
21.9.2 “或”运算符
21.9.3 “异或”运算符
21.9.4 “求补”运算符
21.9.5 设置位
21.9.6 清除位
21.9.7 反转位
21.9.8 位字段
21.10 编程风格
21.10.1 缩进
21.10.2 大括号
21.10.3 长代码行和函数长度
21.10.4 格式化switch语句
21.10.5 程序文本
21.10.6 标识符命名
21.10.7 名称的拼写和大写
21.10.8 注释
21.10.9 设置访问权限
21.10.10 类定义
21.10.11 包含文件
21.10.12 使用assert()
21.10.13 使用const
21.11 c++开发工作的下一步
21.11.1 从何处获得帮助和建议
21.11.2 相关的c++主题:受控c++、c#和microsoft的net
21.11.3 保持联系
21.12 小结
21.13 问与答
21.14 作业
21.14.1 测验
21.14.2 练习
第3周复习
附录a 二进制和十六进制
a.1 其他进制
a.2 不同进制之间的转换
a.2.1 二进制
a.2.2 为什么使用二进制
a.2.3 位、字节和半字节
a.2.4 什么是kb
a.2.5 二进制数
a.3 十六进制
附录b c++关键字
附录c 运算符优先级
附录d 答案
第1章
第2章
第3章
第4章
第5章
第6章
第7章
第8章
第9章
第10章
第11章
第12章
第13章
第14章
第15章
第16章
第17章
第18章
第19章
第20章
第21章
附录e 链表简介
SPRING BOOT+VUE全栈开发实战 本书特色 传统的JavaEE开发效率低下、配置臃肿、调试不便,严重制约了程序员的生产力。Spring Boot致力于...
《理论是非辨与析:用马克思主义引领社会思潮》内容简介:党的十八大以来,以习近平同志为核心的党中央高度重视意识形态工作,旗帜
《追风骑兵》内容简介:1942年,日军集结五万大军,重重包围了八路军太行山根据地。日军特战部队伪装成八路军新六旅,兵分两路,一
《指尖上的会计》内容简介:学会计并不难,难的是“学得开心,用得顺手”。那么,面对那些晦涩难懂的会计术语以及财税处理工作,如
《核技术解读中医药千年奥秘》内容简介:本书为“走进美丽的核科学世界系列”之一,主要内容包括核医学成像、放射性药物、放射性核
《中国零售业发展监测与分析报告(2014)》内容简介:本书按年度全面监测中国零售业发展情况,分析中国零售业发展脉络,重点是中国
《硅谷创业课》内容简介:本书包含了35位硅谷顶级投资人和创业导师关于创业和投资的智慧,包括彼得·蒂尔、史蒂夫·布兰克、埃里克
《理论·制度·道路·文化:海外视域下中国特色社会主义研究》内容简介:2021年是中国共产党建党100周年。海外人士对中国特色社会主
《给高校辅导员的100条建议》内容简介:《给高校辅导员的100条建议》是“辅导员工作100系列”之一种,从10个方面向新辅导员提出了1
《微服务从小白到专家:Spring Cloud和Kubernetes实战》内容简介:本书源码以Spring Boot 2.2.x、Spring Cloud Ho...
《农村电商运营实战》内容简介:2017年中央一号文件明确指出要推进农村电商发展,并具体从农业企业与电商企业的对接融合、农产品电
《会计信息系统(第3版)》内容简介:本书侧重介绍会计信息化的中级发展阶段,即面向企业全面应用的会计信息系统,重点讲授会计信息
《数据科学之编程技术》内容简介:本书围绕使用R进行数据科学编程所需的实际步骤展开。全书着眼于该主题,介绍了有关该主题的工具和
《动力与秩序:中国哲学的现代追寻与转向(1895—1995)》内容简介:面对“三千年未有之大变局”,19世纪晚期,中国文化精神发生了
《Python一行流:像专家一样写代码》内容简介:本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高
计算机应用基础(2007版) 本书特色 本书为北京市高等教育自学考试“计算机应用基础”课程的考试指定用书。该书强调其文化性、科学性、基础性和实用性,着重培养学生...
《奋力迈上共同富裕之路》内容简介:共同富裕有深厚的中华民族传统文化渊源与历史背景,是中国共产党人践行为中国人民谋幸福、为中
ThisintroductiontourbanplanningapplicationsandproblemsolvingwithCISisappropriate...
《苏东坡新传》内容简介:苏东坡,天赋异禀的大文豪,无可救药的乐天派…… 他的标签很多,却难以被标签定义。居高处为翰林学士,落
《国外电子与通信教材系列·数字信号处理(第4版)》全面系统地阐述了数字信号处理的基础知识,其中前10章讲述了确定性数字信号处理