“21天学编程系列”自2009年1月上市以来一直受到广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列,很多大中专院校也将该系列中的一些图书作为教材使用,目前这些图书已经多次印刷、改版。可以说,“21天学编程系列”是自2009年以来国内原创计算机编程图书有影响力的品牌之一。
本书有何特色
1.细致体贴的讲解
为了让读者更快地上手,本书特别设计了适合初学者的学习方式,用准确的语言总结概念?用直观的图示演示过程?用详细的注释解释代码?用形象的比方帮助记忆。
2.实用超值的DVD光盘
为了帮助读者比较直观地学习,本书附带DVD光盘,内容包括多媒体视频、电子教案(PPT)和实例源代码等。
3.提供完善的技术支持
本系列书籍已升级至第四版:
《21天学编程系列:21天学通C++》从初学者的角度较全面地介绍了C++的相关知识,较为系统地介绍了C++语言的基础内容。本书包括6篇共21章的内容。其中,第1篇是C++数据表达篇,包括C++入门、变量和数据类型、运算符和表达式以及程序控制结构等;第2篇是C++面向过程设计篇,包括函数、编译预处理、数组、指针和构造数据类型等内容;第3篇是C++面向对象编程篇,主要包括类和对象、继承、多态、运算符重载和输入/输出流等内容;第4篇主要介绍了C++高级特性,内容包括文件、命名空间和引用与内存管理;第5篇的内容主要是C++编程实践,主要分析了标准模板库STL、模板与C++标准库和异常处理等;最后一篇中结合学生成绩管理系统开发实例,讲解如何使用C++进行实际开发。
第1篇 C++数据表达篇
第1章 C++入门( 教学视频:31分钟)
1.1 C++概述
1.1.1 C++的历史沿革
1.1.2 C++与面向对象
1.1.3 从C到C++
1.2 程序设计方法
1.2.1 结构化程序设计
1.2.2 面向对象程序设计
1.2.3 程序设计方法比较
1.3 C++开发环境――Visual C++ 6.0
1.3.1 工作区
1.3.2 编辑区(Editor Area)
1.3.3 输出窗口(Output Panel)
1.3.4 菜单栏、工具栏、状态栏
1.4
第一个C++程序――Hello World
1.4.1 创建源程序
1.4.2 编译连接
1.4.3 调试运行
1.5 C++源程序组成元素
1.5.1 基本组成
1.5.2 基本符号
1.5.3 标识符
1.5.4 保留字
1.5.5 分隔符
1.6 小结
1.7 习题
第2章 变量和数据类型( 教学视频:32分钟)
2.1 常量
2.1.1 声明常量
2.1.2 常量的应用
2.2 变量
2.2.1 声明变量
2.2.2 变量的命名规则
2.2.3 变量的作用范围
2.2.4 变量的应用
2.3 基本数据类型
2.3.1 整型
2.3.2 字符型
2.3.3 浮点型
2.3.4 布尔型
2.4 类型转换
2.4.1 隐式转换
2.4.2 显式转换
2.5 小结
2.6 习题
第3章 运算符和表达式( 教学视频:34分钟)
3.1 运算符
3.1.1 算术运算符
3.1.2 赋值运算符
3.1.3 关系运算符
3.1.4 逻辑运算符
3.1.5 条件运算符
3.1.6 逗号运算符
3.1.7 位运算符
3.1.8 sizeof运算符
3.1.9 运算符的优先级
3.2 表达式
3.2.1 算术表达式
3.2.2 关系表达式
3.2.3 逻辑表达式
3.2.4 条件表达式
3.2.5 赋值表达式
3.2.6 逗号表达式
3.3 语句
3.3.1 语句中的空格
3.3.2 空语句
3.3.3 声明语句
3.3.4 赋值语句
3.4 小结
3.5 习题
第4章 程序控制结构( 教学视频:32分钟)
4.1 顺序结构
4.1.1 表达式语句
4.1.2 输入语句
4.1.3 输出语句
4.1.4 格式控制符
4.1.5 应用示例
4.2 选择结构
4.2.1 if语句
4.2.2 ifelse语句
4.2.3 多重if…else语句
4.2.4 switch语句
4.2.5 应用示例
4.3 循环结构
4.3.1 for语句
4.3.2 while语句
4.3.3 dowhile语句
4.3.4 多重循环
4.3.5 应用示例
4.4 转向语句
4.5 小结
4.6 习题
第2篇 C++面向过程设计篇
第5章 函数( 教学视频:36分钟)
5.1 定义函数
5.1.1 函数概述
5.1.2 定义函数
5.1.3 应用示例
5.2 函数参数及原型
5.2.1 函数的参数及返回值
5.2.2 函数原型
5.2.3 main()函数
5.2.4 带参数的main()函数
5.3 调用函数
5.3.1 函数调用格式
5.3.2 传值调用
5.3.3 引用调用
5.3.4 嵌套调用
5.3.5 递归调用
5.3.6 带默认形参值的函数
5.4 变量的作用域
5.4.1 局部变量
5.4.2 全局变量
5.5 函数的作用域
5.6 函数重载
5.6.1 函数的重载
5.6.2 参数类型不同的函数重载
5.6.3 参数个数上不同的重载函数
5.7 小结
5.8 习题
第6章 编译预处理( 教学视频:37分钟)
6.1 预处理命令
6.2 宏
6.2.1 宏概述
6.2.2 不带参数的宏定义 1
6.2.3 取消宏 1
6.2.4 宏嵌套 1
6.2.5 带参数的宏定义 1
6.2.6 内联函数 1
6.2.7 宏与函数的区别 1
6.3 文件包含
6.3.1 #include命令
6.3.2 合理使用文件包含
6.4 条件编译 1
6.4.1 #ifdef形式 1
6.4.2 #ifndef形式 1
6.4.3 #if形式 1
6.5 其他命令 1
6.5.1 #error命令 1
6.5.2 #line命令 1
6.6 小结 1
6.7 习题 1
第7章 数组( 教学视频:35分钟) 1
7.1 声明数组 1
7.1.1 声明一维数组 1
7.1.2 声明多维数组 1
7.2 引用数组
7.2.1 引用一维数组
7.2.2 引用多维数组
7.3 数组的赋值
7.3.1 初始化数组 1
7.3.2 通过赋值表达式赋值 1
7.3.3 通过输入语句赋值 1
7.3.4 通过循环语句赋值 1
7.3.5 多维数组的赋值 1
7.4 字符串 1
7.4.1 传统字符串 1
7.4.2 字符数组
7.5 数组与函数
7.6 数组应用
7.6.1 顺序查找
7.6.2 折半查找 1
7.6.3 排序 1
7.7 小结 1
7.8 习题
第8章 指针( 教学视频:33分钟)
8.1 指针概述
8.1.1 指针是什么
8.1.2 定义指针
8.1.3 指针的初始化
8.2 指针的运算 1
8.2.1 取地址与取值运算 1
8.2.2 指针的算术运算 1
8.2.3 指针的关系运算 1
8.2.4 指针的赋值运算 1
8.2.5 void指针和const指针 1
8.3 指针与数组
8.3.1 访问数组元素的方法
8.3.2 多维数组元素的访问
8.3.3 数组指针与指针数组
8.4 指针与函数
8.4.1 指针作为函数参数
8.4.2 指针型函数 1
8.4.3 函数指针 1
8.5 指针与字符串 1
8.6 二级指针
8.7 小结
8.8 习题
第9章 构造数据类型( 教学视频:34分钟)
9.1 结构体
9.1.1 结构体概述
9.1.2 结构体类型说明
9.1.3 定义结构体类型变量 1
9.1.4 初始化结构体变量 1
9.1.5 引用结构体成员变量
9.1.6 结构体作为函数参数
9.2 共用体
9.2.1 共用体类型说明
9.2.2 定义共用体类型变量
9.2.3 引用共用体成员变量
9.3 枚举
9.3.1 定义枚举类型
9.3.2 定义枚举类型变量 1
9.3.3 引用枚举类型变量 1
9.4 类型重定义typedef
9.5 位域
9.5.1 定义位域变量
9.5.2 使用位域
9.6 小结
9.7 习题
第3篇 C++面向对象编程篇
第10章 类和对象( 教学视频:35分钟)
10.1 类
10.1.1 什么是类
10.1.2 结构到类 1
10.1.3 类的声明
10.1.4 类的访问控制
10.1.5 类的定义
10.2 对象
10.2.1 对象概述
10.2.2 对象数组
10.3 构造函数
10.3.1 构造函数的概念
10.3.2 构造函数的声明和定义
10.3.3 构造函数的调用
10.3.4 不带参数的构造函数
10.3.5 带有默认参数的构造函数
10.3.6 构造函数的重载
10.4 拷贝构造函数
10.4.1 定义拷贝构造函数
10.4.2 调用拷贝构造函数
10.4.3 默认拷贝构造函数
10.5 析构函数
10.6 友元
10.6.1 友元函数
10.6.2 友元成员 2
10.6.3 友元类 2
10.7 小结 2
10.8 习题 2
第11章 继承( 教学视频:38分钟)
11.1 继承与派生
11.1.1 继承与派生概述
11.1.2 声明派生类
11.2 访问控制
11.2.1 公有继承
11.2.2 私有派生 2
11.2.3 保护继承 2
11.3 派生类的构造函数和析构函数 2
11.3.1 执行顺序和构建原则 2
11.3.2 派生类的构造函数 2
11.3.3 派生类析构函数的构建
11.4 多重继承
11.4.1 二义性问题
11.4.2 声明多重继承 2
11.4.3 多重继承的构造函数和析构函数 2
11.5 虚基类 2
11.5.1 虚基类的引入 2
11.5.2 定义虚基类 2
11.5.3 虚基类的构造函数和初始化
11.6 小结
11.7 习题
第12章 多态( 教学视频:34分钟) 2
12.1 多态 2
12.1.1 什么是多态 2
12.1.2 多态的作用 2
12.1.3 多态的引入 2
12.2 函数重载
12.3 虚函数
12.3.1 虚函数的引入
12.3.2 定义虚函数
12.3.3 使用虚函数
12.3.4 多重继承和虚函数
12.3.5 虚函数的注意事项 2
12.4 抽象类 2
12.4.1 纯虚函数 2
12.4.2 抽象类 2
12.5 小结
12.6 习题
第13章 运算符重载( 教学视频:31分钟)
13.1 运算符重载简介
13.1.1 运算符重载的定义
13.1.2 运算符重载的特点
13.1.3 运算符重载的规则
13.2 运算符重载的形式 2
13.2.1 重载为类的成员函数 2
13.2.2 双目运算符重载为成员函数 2
13.2.3 单目运算符重载为成员函数 2
13.2.4 运算符重载为类的友元函数
13.2.5 双目运算符重载为友元函数
13.2.6 单目运算符重载为友元函数
13.2.7 成员运算符函数与友元运算符函数的比较
13.3 特殊运算符的重载
13.3.1 “++”和“--”的重载
13.3.2 赋值运算符“=”的重载
13.3.3 下标运算符“[ ]”的重载
13.4 类类型转换 2
13.5 小结
13.6 习题
第14章 输入/输出流( 教学视频:34分钟)
14.1 输入/输出流的引入
14.1.1 printf与scanf的缺陷
14.1.2 输入/输出流简介
14.1.3 输入/输出流类层次
14.2 标准输入/输出流
14.2.1 标准输出流对象
14.2.2 标准输入流对象
14.2.3 标准错误输出流对象
14.3 输入/输出流成员函数 2
14.3.1 get()函数:输出字符串 2
14.3.2 getline()函数:获取字符串
14.4 输入/输出的格式控制
14.4.1 用ios类的成员函数进行格式控制
14.4.2 使用格式控制符进行格式控制
14.5 用户自定义数据类型的输入/输出
14.5.1 重载输出运算符“<<”
14.5.2 重载输入运算符“>>”
14.6 小结
14.7 习题
第4篇 C++高级特性篇
第15章 文件( 教学视频:28分钟)
15.1 文件和流
15.1.1 文件概述
15.1.2 文件流类
15.2 文件的打开与关闭
15.2.1 打开文件
15.2.2 关闭文件
15.3 文件的顺序读写
15.3.1 读写文本文件
15.3.2 文本文件应用示例
15.3.3 二进制文件概述
15.3.4 读写二进制文件
15.4 文件的随机读写
15.5 小结
15.6 习题
第16章 命名空间( 教学视频:34分钟)
16.1 命名空间
16.1.1 什么是命名空间
16.1.2 定义命名空间
16.2 使用命名空间
16.2.1 使用作用域运算符引用成员
16.2.2 使用using指令
16.2.3 使用using声明 3
16.3 类的作用域 3
16.3.1 静态数据成员 3
16.3.2 静态成员函数 3
16.4 作用域 3
16.4.1 局部作用域 3
16.4.2 全局作用域 3
16.4.3 作用域嵌套
16.5 this指针
16.6 小结
16.7 习题
第17章 引用与内存管理( 教学视频:31分钟) 3
17.1 引用 3
17.1.1 引用概述 3
17.1.2 引用的使用 3
17.2 引用的操作 3
17.2.1 引用作为函数参数 3
17.2.2 引用作为返回值 3
17.3 动态内存分配
17.3.1 申请动态内存
17.3.2 释放空间
17.3.3 malloc和free库函数
17.4 const引用 3
17.5 指针与引用的区别 3
17.6 小结 3
17.7 习题 3
第5篇 C++编程实践篇
第18章 标准模板库STL( 教学视频:30分钟)
18.1 标准模板库
18.1.1 STL概述
18.1.2 STL的引入
18.1.3 STL的组成
18.2 算法
18.3 容器
18.3.1 什么是容器
18.3.2 向量
18.3.3 列表 3
18.3.4 集合 3
18.3.5 双端队列 3
18.3.6 栈
18.3.7 映射和多重映射
18.4 迭代器
18.5 小结
18.6 习题
第19章 模板与C++标准库( 教学视频:33分钟) 3
19.1 模板概述 3
19.1.1 模板简介 3
19.1.2 模板的引入 3
19.2 函数模板 3
19.2.1 定义函数模板 3
19.2.2 生成模板函数
19.2.3 函数模板的异常处理
19.3 类模板
19.3.1 定义类模板
19.3.2 模板类
19.4 C++标准库概述
19.5 字符串库
19.5.1 读写字符串
19.5.2 字符串赋值
19.5.3 字符串比较
19.5.4 字符串长度和空字符串 3
19.6 小结
19.7 习题
第20章 异常处理( 教学视频:31分钟)
20.1 错误与异常
20.1.1 什么是异常
20.1.2 异常处理的基本思想
20.2 异常处理的实现
20.2.1 使用try/catch捕获异常
20.2.2 使用throw抛出异常
20.2.3 应用示例
20.3 类和结构的异常处理
20.3.1 异常处理中的构造和析构 3
20.3.2 处理结构类型的异常
20.4 异常处理机制
20.5 小结
20.6 习题
第6篇 实例篇
第21章 简单学生成绩管理系统开发实例( 教学视频:31分钟)
21.1 需求分析
21.2 总体设计
21.3 功能模块实现
21.3.1 成绩录入模块
21.3.2 成绩统计模块
21.3.3 成绩排名模块
21.3.4 成绩查询模块
21.3.5 输出模块
21.4 系统集成
21.5 系统实现
21.5.1 结构和变量定义部分
21.5.2 功能函数定义部分
21.5.3 主函数部分
21.6 小结
继承是面向对象程序设计的重要特性之一。C++作为一种面向对象程序设计语言,提供了丰富的继承功能。类的继承是新的类从已有类那里得到已有的特性,从已有的类产生新类的过程就是类的派生。在继承过程中,原有的类或已经存在的用来派生新类的类称为基类或父类,而由已经存在的类派生出的新类则称为派生类或子类。本章主要介绍类的继承方式、派生类、多重继承,以及多重继承之间的访问控制机制。
以下是对读者在学习本章内容时所提出的几个基本要求,也是本章希望能够达到的目的,让读者在学习本章内容时可以作为一个学习的参照。
了解C++中继承与派生的概念。
掌握C++支持的派生方式及派生类的构造函数和析构函数的定义和使用。
掌握多重继承和虚基类的应用。
11.1继承与派生
继承是面向对象的一块基石,其允许创建分等级层次的类。利用继承可以创建一个通用的类,然后由更具体的类来继承它,再在这些类里加入自己新的成员。
11.1.1继承与派生概述
前面介绍面向对象程序设计时提到,封装、继承和多态是面向对象程序设计方法的三个特征。而继承是指一个类除了得到另外一个类的所有性质外,还具有自身独特的性质。则该类称为派生类,而另外一个类称为基类,这种行为称为继承。
例如,在现实生活中,人是一个类,动物也是一个类,而人这个类具有动物这个类的所有特征,此外,还具有其他动物所没有的独特性质,如说话、直立行走等。因此,在该关系中,人是派生类,动物是基类,人这个类继承于动物。
继承是面向对象的一个重要特征,根据派生类所拥有的基类数目不同,可以分为单继承和多继承。一个类只有一个直接基类时,称为单继承;而一个类同时有多个直接基类时,则称为多继承。
......
说实话,这本书的“21天”噱头,我个人觉得是有些夸张了。我花了大概一个多月的时间,才算把前一部分基础内容看完,并且能够勉强写一些简单的程序。这本书的优点在于,它把C++的很多基本知识点都囊括进来了,从数据类型、运算符,到控制语句、函数,再到数组、指针,都一一涉及。而且,每章后面都有一些练习题,虽然有些题目的难度跨度有点大,但总的来说,还是能够帮助巩固知识的。 我的学习过程,很大程度上是依赖于自己动手去敲代码。书里提供的源代码,我都会尝试着去运行,去修改,去观察结果。DVD光盘里的内容,我主要用来查看书中的代码实现。但令我有些困惑的是,对于一些比较抽象的概念,比如内存管理、对象的生命周期等,书中的讲解虽然有,但我觉得不够透彻,有时候会觉得“知其然,不知其所以然”。尤其是在处理一些比较复杂的程序时,经常会遇到各种编译错误和运行时错误,那时候,我就需要花费大量的时间去调试,去查找原因。这本书的语言风格比较朴实,没有太多花哨的修辞,这倒是不错,但有时候,也显得有些枯燥。
评分这本书给我的感觉,更像是一个“概览”性质的入门教材。它确实把C++的许多核心概念都罗列出来了,从基础的语法到稍微进阶的一些内容,都有所涉及。我比较喜欢的是,它在讲解一些概念时,会尝试用一些比喻或者简单的场景来帮助理解,比如讲到指针的时候,用了“地址”的概念。但是,在实际的学习过程中,我发现很多概念的讲解,深度上还远远不够。尤其是当涉及到一些内存管理、多线程、或者网络编程相关的部分时,这本书的介绍就显得非常浅显了。 我记得我当时学习到一个关于STL(Standard Template Library)的部分,书里只是简单地介绍了一些容器,比如vector和list,对于它们的使用场景和性能特点,讲解得就比较笼统。导致我后来在实际项目中,对如何选择合适的容器,以及如何优化代码,都感觉比较吃力。DVD光盘里的内容,我主要用来验证书中的代码示例。有时候,书里的代码我运行不成功,就会去光盘里找对应的文件,对比一下。但要说它能提供多少“额外”的学习价值,我个人认为比较有限。这本书更适合那种完全零基础,想快速了解C++大概是什么样子的读者。如果你想深入地掌握C++,并且能够独立解决一些实际编程问题,那么这本书只能作为你的第一步,之后还需要大量的补充学习。
评分这本《21天学通C++(第3版)》我大概是半年前入手的,当时刚接触编程,什么都不懂,听朋友推荐说这套“21天系列”比较入门,而且C++是基础,就咬牙买下了。拿到书的时候,我其实有点小激动,因为那个年代,能附带一张DVD光盘的书,感觉还是挺“高科技”的。翻开第一页,黑白印刷,内容密密麻麻,看着就有点劝退。不过,想着“21天”这个承诺,我还是硬着头皮开始了。 我的C++学习之路,可以说是一场“持久战”,虽然书名写着21天,但实际上我花了远不止这个时间。从最基础的变量、数据类型,到流程控制(if, for, while),再到函数,一步一步来。书里的例子讲解还算清晰,但有时候写完代码,编译错误一大堆,我真的是抓耳挠腮。那个DVD光盘,我一开始以为是视频教程,结果发现是些配套的源代码和一些小的演示程序,对我这种纯小白来说,直接运行这些代码,理解起来还是有点吃力。尤其是一些复杂的概念,比如指针,当时看得我头大,感觉像是进入了另一个次元。书的排版有时候也不太友好,字体有点小,长时间看眼睛会累。不过,最让我印象深刻的是,当我第一次成功编译并运行出一个能让我输入名字然后打印出“你好,XX!”的程序时,那种成就感是无与伦比的。虽然离精通C++还差十万八千里,但至少,这本书让我看到了编程的“门”。
评分这本《21天学通C++(第3版)》,我觉得它更像是一本“快速入门指南”。它在短时间内,把C++的大部分基础知识点都过了一遍,从变量、表达式,到控制流、函数,再到面向对象编程的一些基本概念,都有所涉及。这本书最大的优点,我觉得是它的“全”,几乎你能想到的C++基础知识,它都写进去了。而且,它的语言风格比较朴实,没有太多晦涩难懂的词汇,对于初学者来说,读起来不会有太大的压力。 我当时学习的时候,最受用的就是书里的大量代码示例。我基本上是边看书,边跟着敲代码。遇到不懂的地方,就反复琢磨,有时候还会自己修改代码,看看会发生什么。DVD光盘里的内容,我主要用来对照书中给出的代码。有时候,我敲的代码和书里的不一样,就会去光盘里找对应的文件,看看区别在哪里。但我觉得,这本书在讲解一些比较深入的概念时,比如模板、异常处理、或者一些高级的内存管理技术,讲解得就有点过于简单了。导致我后来在实际开发中,遇到一些复杂的问题时,会感觉力不从心。这本书更像是在“点到为止”,它告诉你“是什么”,但很少深入地讲解“为什么”以及“怎么做得更好”。所以,如果你想快速对C++有一个整体的认识,这本书是不错的选择,但如果你想成为C++的“专家”,那么这本书绝对不够。
评分这本《21天学通C++》给我的感受,就像是在一个陌生的国度,手里只有一本粗略的地图,虽然能指引方向,但细节之处仍需自己探索。我比较喜欢它循序渐进的教学方式,从最简单的“Hello, World!”开始,逐步引入各种概念。不过,在我看来,有些概念的讲解深度可能略显不足。比如,在讲到面向对象编程的继承和多态时,虽然书里给出了例子,但对于初学者来说,这些概念的精髓和实际应用场景的理解,可能还需要更多的实践和拓展阅读。我印象最深的一次,是因为书里一个关于文件操作的例子,我死活运行不出来,各种百度、查阅资料,才发现是路径问题,那时候才体会到“纸上得来终觉浅”的道理。 DVD光盘里的内容,我主要是用来对照书里的代码。有时候,书里的代码我敲错了,或者有疑问,会去光盘里找对应的源文件,对比一下,这确实很有帮助。但要说它能完全替代老师的讲解,我倒觉得还差了点意思。我觉得这本书更适合作为一本“工具书”或者“入门指南”,在你遇到困惑时,翻出来查阅一下。但如果你想系统地、深入地掌握C++,光靠这本书,我觉得是远远不够的。比如,在数据结构和算法方面,这本书的介绍就比较基础,想要进一步学习,还需要其他更专业的书籍。总的来说,它是一个不错的起点,但绝不是终点。
评分书包装还好,没破损。
评分货不错,非常好,价格实惠
评分讲解的脉络清晰,通俗易懂,是一本入门的好书
评分活到老学到老
评分凑合吧,很多地方讲的不太明确
评分不知道能不能月学,啊啊啊吧爸爸
评分内容很基础,入门快速阅读
评分凑合吧,很多地方讲的不太明确
评分非常不错 电子产品在京东买很安全
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有