该书是一本与众不同的面向初学来自者的C++读物,不需要读者有太多的基础。以简单实用为原则,讲解通俗易懂,套略航尼循序渐进,避免了云山雾罩、晦涩众执难懂。该书语言轻松活泼乎丰班热,用类比、对比、比喻等写360百科作手法,并配合图解教学,对难点之处又给出了必要提示;书中的每个知识点都对应相应的编程实例,便于读了调者一边学习一边动手实践,既可以提高读者的动手能力,也可以激发学习兴趣。该书配1张光盘,内容为本书配套教学视频及源代码。另外,光盘中还赠送了Vi倒让论口密粒sual C++项目开发的源代码及教学视频。
会儿春 《C++入门很简单》是清华大学出版社出版的图书 。
C++入门很简单
作者:池剑锋 等
来自 定价:59.80元
印次:1-6
跟住些十判波写省沿掌ISBN:97873鱼检比余维没例型善刻02328247
出版日期:2014.03衣我.01
印刷日期:2018.11.08
出版社:清华大学出版社
随着科技的不断发展,IT行业出现了数百种编程语言。C+果序突+历经30多年的发展,依旧是一门主流的程序设计语言。在开发大型软件(如操作系统、数据仓库、图形图像处理、编译系统等较为底层的系统软件)上C++具有很突出的优势与效率,同时,座怎牛不航盟学习C++语言有助于读者理解计算机运行原理,便于设计出更加健壮、来自稳定的系统。在就业方面,C++程序员普遍具有较高的身价,一名优秀的C+360百科+程序员无疑具有更好的就业机会与市场竞 争力。
图书市场上关于C++语言程序设计的图书不少,但真正适合于C++初学者的书籍却并不多,这些书籍往往语法细节过多,需要大量的计算机相关知识体系,对于初学者无疑是一个巨大的翻代挑战。基于这个原因,笔者历重牛木过团根据自己多年使用C++编程的经验和心得体会写了这本书,希望能够引领读者进入C++编程的殿堂。本书河离针对C++初学者的基础条件,配合大量的图表使子到政而装养联正丝百,简明扼要地总结了C++的语法要点和结构;实例程序简单易懂,循序渐进,使读者能更加深刻、全面地理解C++程序设计语言,灵活、高效规刻地利用C++语言进行程序开发。
本书以通俗易懂、生活化的例子来解释每个知识点的用法,书中的每个例子能起到抛砖引玉的功效。这样就避免示呢压周唱继派亮染级了云山雾罩、晦涩难懂。而且在语言上尽可能轻松活泼,多用类比、对比、比喻等到写作手法,而且配合了大量图解教学,并对难点给出了必要提示。另外,本书还录制了配套的多媒体教学视频,以辅助读者学习。相信这样的一本书,面话味息可以扫清读者学习过程中的障碍,让读者少走弯路,并激发学习Visual C++的兴跟绍触杀起弱趣,从而较快地掌握Visual C++编程。
1.提供配套的多媒体教学视频
本书专门录制了配套多媒体教学视频,帮助读者直观而高效地学习,从而达渐日想宽定车食受到事半功倍的效果。这些视频和本书实例源代码收录于本书配套光盘中。
2.起点较低,不需要程般华序设计的基础知识
一些初学获突者在学C++语言之脱罪型啊控前并没有接触过其他程序设计语言,本书从程序设计基础知识讲起,触急详细介绍C++的语法知识和要点,使读者对其有充分了解,从而具备一定的程序设计基础。
3.划分有序,编排合理
本书将C++程序设计划分为4大部分,分别是面真临乎哪国阿待多件点向结构程序设计、面向对象程序设计、泛型编程以及输入输出审际教采流。这4个部分在编排逻辑上依次渐进,后续知识点需要前面的知识作为铺垫,知识结构与脉络清晰,便于读者理解知识点。
4.诙谐幽默,穿插了大量生活化的例子
本书避免用艰涩难懂、枯燥乏味的术语云山雾罩地分析问题,代之以轻松活泼、幽默直白的讲解。书中的知识点尽量先给现实生活中的例子,然后与之对比或者类比,让读者理解。
5.详略得当,讲解通俗易懂
本书从实用角度出发,尽量避免一些生僻而又不易理解的知识点,将重点放在语言本身的难点(指针、面向对象概念)和程序设计的技巧上,并结合生动形象的例子对较难的知识点进行详细介绍,力求使读者尽快掌握相关开发知识。
6.强化实践,重视应用
本书提供了大量实例,从实践角度对C++的知识点进行形象的说明,配合相关的技巧说明,加深读者的印象。本书最后通过一个具体项目开发案例来讲述如何利用C++从零基础开始构建一个完整项目,注重实际解决问题的能力。
7.代码精讲,注释丰富
本书中的每段代码都给出了详细的解释,并且进行了丰富的代码注释,便于读者理解。而且对于大段代码还给出了流程图帮助读者理解复杂的程序,如第19章的学生管理系统。
8.提供练习题,巩固提高
本书提供了必要的练习题目,以帮助读者巩固和提高所学的知识,也便于相关学校教学使用。
9.提供教学PPT,辅助教学
本书专门制作了教学PPT,以便于老师的教学和学生的学习。教学PPT的下载方式参见本书封底的提示语言。
10.提供完善的技术支持和售后服务
第1篇 C++编程基础篇(第1~7章)
本篇介绍了C++程序设计语言的基本数据类型,面向结构程序设计的3种基本结构,以及相关运算符的意义,介绍了函数的相关特性和应用方式。
第2篇 面向对象程序设计篇(第8~11章)
本篇对面向对象程序设计进行了详细的介绍,形象地说明了什么是类和对象,以及它们之间的关系。接着介绍了C++面向程序设计的3大特性:继承、多态及虚函数。对继承和虚函数的概念与方法、多态的性质与原理进行详细的介绍。
第3篇 C++模板篇(第12~14章)
本篇主要介绍了泛型编程中的函数模板、类模板及C++标准模板库中提供的模板。如何创建自定义的模板以及使用现有STL中的模板是本篇内容的关键。
第4篇 输入/输出操作篇(第15~18章)
本篇主要介绍基本的输入/输出操作,涉及对文件流、字符流处理。同时,对包括异常处理、预处理、string类及相关类型转换操作符的知识点进行说明。
第5篇 项目实战篇(第19章)
整合前面所介绍的知识,通过一个具体的项目案例来说明如何利用C++进行项目开发。
配书光盘内容介绍
为了方便读者阅读本书,本书附带1张DVD光盘。内容如下:
* 本书配套多媒体教学视频;
* 本书所有实例源代码;
* Visual C++项目开发源代码及教学视频。
适合阅读本书的读者
* 零基础学C++的人员;
* C++程序员;
* C++开发爱好者;
* 专业培训机构的学员;
* 大中专院校的学生。
阅读本书的建议
* 没有C++基础知识的读者,建议从第1章顺次阅读并演练每一个实例。
* 有一定C++基础知识的读者,可以根据实际情况有重点地选择阅读的章节。
* 对于书中提供的每个编程实例,先自己思考一下实现的思路,然后再阅读,学习效果更好。
* 对于不易理解的概念和知识点,可以通过调试光盘中提供的实例代码来深入理解程序的运行机制和原理。
该书由池剑锋主笔编写。其他参与编写的人员有陈刚、陈世琼、黄点点、黄海力、黄绍斌、蒋春蕾、李国良、李俊娜、李晓娜、刘永纯、王书勇、王挺、王文强、张伟、张小华、胡丹萍、王以荣、徐阳。
第1篇 C++编程基础篇
第1章 C++编程前奏(教学视频:19分钟) 2
1.1 计算机的五脏六腑 2
1.1.1 控制器 3
1.1.2 运算器 3
1.1.3 存储器 4
1.1.4 输入设备 4
1.1.5 输出设备 4
1.2 操作系统的进化史 4
1.3 编程语言的家谱 5
1.3.1 机器语言 5
1.3.2 汇编语言 6
1.3.3 高级语言 8
1.4 面向过程程序设计 8
1.5 面向对象程序设计 9
1.5.1 面向对象的方法由来--万物皆是对象 10
1.5.2 面向对象的基本概念 10
1.6 搭建C++开发环境 11
1.6.1 下载和安装大管家--Visual C++ 6.0 11
1.6.2 大管家的责任 11
1.6.3 迈出第一步--第一个C++程序 15
1.7 C++编程简述 17
1.7.1 C++语言特点 17
1.7.2 C++的良好编程风格 18
1.8 本章小结 19
1.9 本章习题 20
第2章 开始C++开发之旅(教学视频:27分钟) 21
2.1 机器的螺丝--基本数据类型和常用库函数 21
2.1.1 字符集和标识符 21
2.1.2 整型数据 23
2.1.3 浮点型数据 24
2.1.4 字符型数据 25
2.1.5 字符串和枚举常量 26
2.1.6 符号常量和变量 27
2.1.7 输入/输出函数 32
2.1.8 其他常用的函数 35
2.2 运算符和表达式 37
2.2.1 算术运算符 37
2.2.2 逻辑运算符 38
2.2.3 关系运算符 39
2.2.4 位操作运算符 39
2.2.5 赋值运算符和相等性运算符(==) 40
2.2.6 字节数运算符(sizeof) 41
2.2.7 运算符的优先级和结合性 41
2.2.8 算术表达式 43
2.2.9 逻辑表达式 45
2.2.10 关系表达式 46
2.2.11 条件表达式 47
2.2.12 赋值表达式 48
2.2.13 逗号表达式 49
2.3 类型转换 50
2.3.1 强制类型转换 50
2.3.2 自动类型转换 52
2.4 控制结构和语句 53
2.4.1 for重复结构及示例 53
2.4.2 while重复结构及示例 55
2.4.3 do/while重复结构及示例 56
2.4.4 if-else结构及示例 57
2.4.5 switch多选结构 59
2.4.6 break和continue语句 61
2.4.7 goto语句 62
2.5 预处理 63
2.5.1 文件包含命令(#include) 63
2.5.2 宏定义命令(#define) 63
2.6 本章小结 64
2.7 本章习题 64
第3章 数组和字符串(教学视频:30分钟) 67
3.1 一维数组 67
3.1.1 一维数组定义 67
3.1.2 一维数组的初始化 68
3.1.3 一维数组元素的引用 68
3.1.4 一维数组示例 69
3.2 多维数组 71
3.2.1 多维数组定义 71
3.2.2 初始化多维数组 72
3.2.3 多维数组应用举例 73
3.3 字符数组和字符串 74
3.3.1 字符数组的定义和赋值 74
3.3.2 字符串的输入/输出 76
3.3.3 字符串应用示例 77
3.4 本章小结 78
3.5 本章习题 79
第4章 指针与引用(教学视频:46分钟) 81
4.1 市场经济--指针的定义及格式 81
4.1.1 什么是指针 81
4.1.2 声明一个指针 82
4.1.3 初始化指针变量 83
4.1.4 指向指针的指针 84
4.2 指针的运算 85
4.2.1 指针的赋值运算和增减值运算 85
4.2.2 指针比较运算和相减运算 87
4.2.3 指针运算和地址运算 88
4.3 指针和数组 89
4.3.1 使用数组名的指针表示法 89
4.3.2 指针数组 90
4.3.3 指向数组的指针 91
4.4 动态内存分配 94
4.4.1 使用new动态分配内存 94
4.4.2 delete释放动态申请的内存 94
4.4.3 malloc和free使用 96
4.4.4 内存动态申请注意事项 97
4.4.5 转换指针 99
4.5 常量指针和指向常量的指针 100
4.5.1 常量指针 100
4.5.2 指向常量的指针 101
4.6 人人都可以有绰号--引用 102
4.6.1 引用和引用的创建方法 102
4.6.2 引用和指针关系 103
4.7 本章小结 106
4.8 本章习题 106
第5章 结构体和共用体(教学视频:51分钟) 109
5.1 一串精美的珍珠--结构体 109
5.1.1 结构体的声明 109
5.1.2 结构体变量的定义和使用 110
5.1.3 结构体变量初始化 111
5.1.4 结构体数组定义和引用 113
5.1.5 结构体指针 114
5.1.6 结构体应用举例 117
5.2 大家的公共教室--共用体 121
5.2.1 共用体的声明 121
5.2.2 共用体变量定义和使用 121
5.2.3 共用体和结构体差异 123
5.2.4 共用体数组和指针 124
5.2.5 共用体应用举例 124
5.3 本章小结 126
5.4 本章习题 126
第6章 使用函数编程(教学视频:45分钟) 128
6.1 神秘的黑盒子--函数 128
6.1.1 程序模块化的优势 128
6.1.2 编写一个函数 129
6.2 理解函数 130
6.2.1 函数的定义 130
6.2.2 函数的声明 132
6.3 函数参数和返回值 133
6.3.1 什么是实参和形参 134
6.3.2 参数类型转换 135
6.3.3 函数参数默认值设置 136
6.3.4 函数参数值传递 137
6.3.5 函数参数指针传递 138
6.3.6 函数参数引用传递 141
6.3.7 函数返回值实现 142
6.4 递归函数和内联函数 143
6.4.1 递归函数示例 144
6.4.2 内联(inline)函数示例 145
6.5 函数的重载 146
6.5.1 重载函数特征 146
6.5.2 实现重载函数 147
6.5.3 重载函数的二义性问题 148
6.6 函数存储类型 149
6.6.1 外部函数 149
6.6.2 内部函数 150
6.7 本章小结 151
6.8 本章习题 151
第7章 函数高级应用(教学视频:37分钟) 153
7.1 小心地雷--内存操作问题 153
7.1.1 内存泄漏 153
7.1.2 野指针 155
7.2 函数与结构体、共用体 156
7.2.1 结构体和共用体作为函数参数 156
7.2.2 结构体和共用体作为返回值 157
7.3 函数与数组 159
7.3.1 一维数组作为函数参数 159
7.3.2 二维数组作为函数参数 160
7.4 函数指针 162
7.4.1 函数指针的定义 162
7.4.2 把函数作为参数传递 164
7.4.3 函数指针数组 165
7.5 main函数的参数--程序的入口 167
7.6 本章小结 169
7.7 本章习题 170
第2篇 面向对象程序设计篇
第8章 类和对象之基础(教学视频:43分钟) 174
8.1 类和对象的基本概念--抽象与具体辩证 174
8.1.1 类的概念 174
8.1.2 对象概念 175
8.1.3 类和对象的关系 175
8.2 类的定义格式和对象定义方法 176
8.2.1 类的定义格式 176
8.2.2 对象的定义方法 177
8.2.3 对象成员的表示 178
8.2.4 class和struct 180
8.3 一个对象的生与死 180
8.3.1 默认构造函数 180
8.3.2 自定义构造函数 181
8.3.3 析构函数 182
8.4 抄作业的秘密--拷贝构造函数 184
8.4.1 理解拷贝构造函数 184
8.4.2 默认的拷贝构造函数 184
8.4.3 拷贝构造函数方法的选择 185
8.5 公共饮水机--静态成员 189
8.5.1 静态数据成员 189
8.5.2 静态成员函数 191
8.6 只可远观而不可亵玩--常成员 192
8.6.1 常数据成员 192
8.6.2 常成员函数 194
8.7 类的类型转换 195
8.7.1 类型隐式转换 196
8.7.2 类的类型和一般数据类型之间的转换 196
8.7.3 隐式转换存在的二义性问题 199
8.8 本章小结 200
8.9 本章习题 200
第9章 类和对象之进阶(教学视频:44分钟) 203
9.1 类的作用域和对象的生存期 203
9.1.1 类的作用域 203
9.1.2 对象的生存期 205
9.2 严格的海关--友元函数和友元类 207
9.2.1 友元函数 207
9.2.2 友元类 209
9.3 对象指针和数组 210
9.3.1 对象指针 210
9.3.2 this指针 213
9.3.3 对象引用 214
9.3.4 对象数组 216
9.3.5 对象指针数组 217
9.4 按需选择--运算符重载 219
9.4.1 运算符重载的条件 219
9.4.2 重载赋值运算符 220
9.4.3 重载算术运算符 221
9.4.4 重载下标运算符 222
9.4.5 重载类型转换 223
9.4.6 重载new和delete运算符 224
9.4.7 智能指针 225
9.5 本章小结 226
9.6 本章习题 227
第10章 继承(教学视频:45分钟) 229
10.1 父子关系--何谓继承 229
10.2 继承和聚合 230
10.3 基类和派生类 230
10.3.1 从基类派生出新类 230
10.3.2 继承下的访问控制 232
10.3.3 派生类的构造函数和析构函数 237
10.3.4 基类和派生类的类型转换 239
10.4 多重继承 241
10.4.1 多个基类 241
10.4.2 多重继承成员的模糊性 243
10.4.3 重复继承 245
10.4.4 虚基类 246
10.5 本章小结 248
10.6 本章习题 249
第11章 虚函数和多态性(教学视频:21分钟) 251
11.1 标准接口--什么是多态性 251
11.2 动态绑定和静态绑定 252
11.2.1 静态绑定 252
11.2.2 虚函数 255
11.2.3 动态绑定 258
11.3 空瓶子--抽象基类和纯虚函数 260
11.3.1 纯虚函数的声明和定义 261
11.3.2 抽象类 262
11.3.3 虚析构函数 263
11.4 类成员指针 264
11.4.1 数据成员指针 264
11.4.2 成员函数指针 266
11.5 本章小结 268
11.6 本章习题 269
第3篇 C++模板篇
第12章 函数模板(教学视频:16分钟) 272
12.1 认识函数模板 272
12.1.1 为什么使用模板 272
12.1.2 定义函数模板 273
12.1.3 使用函数模板 274
12.2 函数模板的参数 276
12.3 重载函数模板 278
12.3.1 函数模板之间的重载 279
12.3.2 显示特化的重载 280
12.3.3 普通函数重载 281
12.4 本章小结 282
12.5 本章习题 283
第13章 类模板(教学视频:21分钟) 285
13.1 认识类模板 285
13.2 定义类模板 286
13.2.1 模板参数 286
13.2.2 简单的类模板 287
13.2.3 创建类模板实例 289
13.2.4 类模板的静态成员 292
13.2.5 非类型的类模板参数 294
13.2.6 非类型的参数实例 296
13.2.7 默认参数模板 297
13.3 模板显式实例化 299
13.4 类模板的友元 301
13.5 模板的嵌套 303
13.6 本章小结 307
13.7 本章习题 307
第14章 标准模板库(STL)(教学视频:28分钟) 309
14.1 STL概述 309
14.1.1 STL组件 309
14.1.2 容器(container) 310
14.1.3 迭代器(iterator) 313
14.1.4 算法(algorithm) 313
14.1.5 STL头文件 314
14.2 使用vector容器 315
14.2.1 创建Vector容器 315
14.2.2 访问vector容器中的元素 316
14.2.3 vector基本操作 318
14.2.4 vector容器和数组 320
14.2.5 输入/输出流迭代器 321
14.3 创建自己的迭代器 323
14.3.1 给算法传送迭代器 323
14.3.2 STL迭代器类型要求 325
14.3.3 STL迭代器成员函数的条件 327
14.3.4 插入迭代器 328
14.4 list容器 329
14.4.1 创建list容器 330
14.4.2 访问list容器中的元素 330
14.4.3 list容器上的操作 331
14.5 本章小结 333
14.6 本章习题 333
第4篇 输入/输出操作篇
第15章 输入/输出流和文件流(教学视频:32分钟) 336
15.1 C++中的输入/输出流 336
15.1.1 什么是流 336
15.1.2 输出流 337
15.1.3 输入流 339
15.1.4 流格式状态 340
15.1.5 流错误状态 342
15.2 文件流 344
15.2.1 写入文件 344
15.2.2 读取文件 346
15.2.3 文件随机访问 347
15.2.4 随机访问文件的读写操作 348
15.3 字符串流 351
15.3.1 strstream相关类 351
15.3.2 sstream相关类 352
15.4 对象和流 353
15.4.1 <<操作符重载 354
15.4.2 >>操作符重载 355
15.5 本章小结 356
15.6 本章习题 357
第16章 异常处理(教学视频:25分钟) 359
16.1 认识异常 359
16.1.1 了解异常处理 359
16.1.2 抛出异常 360
16.1.3 导致抛出异常的代码 362
16.2 用类对象作为异常 362
16.2.1 用catch处理程序和异常 362
16.2.2 用基类处理程序捕获派生类的异常 365
16.2.3 重新抛出异常 367
16.2.4 捕获所有异常 369
16.3 抛出异常的函数 371
16.3.1 函数try块 371
16.3.2 在构造函数中抛出异常 372
16.3.3 异常和析构函数 372
16.3.4 一个简单的异常处理例子 373
16.4 其他典型异常 375
16.4.1 堆栈解退 375
16.4.2 处理new失败 376
16.4.3 auto_ptr与内存泄漏 377
16.5 本章小结 378
16.6 本章习题 378
第17章 程序的预处理(教学视频:15分钟) 380
17.1 预处理简介 380
17.2 C++预处理程序 381
17.3 include(包含)文件 382
17.4 预处理指令#define 383
17.4.1 预定义符号常量 383
17.4.2 带参数的宏定义和不带参数的宏定义 384
17.4.3 宏定义取消 386
17.5 条件编译 387
17.5.1 #if-#else-#endif指令 387
17.5.2 #if - #elif - #endif指令 388
17.5.3 #ifdef - #endif指令 388
17.5.4 #ifndef - #endif指令 389
17.6 #pragam 指令 389
17.7 本章小结 392
17.8 本章习题 392
第18章 string类和其他信息(教学视频:21分钟) 393
18.1 string类介绍和声明 393
18.2 string的输入/输出 394
18.3 string的基本操作 395
18.3.1 赋值和拼接 395
18.3.2 比较字符串 397
18.3.3 子串 398
18.3.4 交换字符串 399
18.3.5 字符插入 399
18.3.6 替换字符 401
18.3.7 查找 402
18.3.8 转换为C风格的char*字符串 405
18.4 运行时类型信息(RTTI) 406
18.5 类型转换操作符 407
18.5.1 const_cast操作符 407
18.5.2 static_cast操作符 408
18.5.3 reinterpret_cast操作符 408
18.6 本章小结 408
18.7 本章习题 409
第5篇 项目实战篇
第19章 学生管理系统项目案例(教学视频:48分钟) 412
19.1 学生管理系统项目需求与设计 412
19.1.1 数据库设计 412
19.1.2 功能设计 413
19.1.2 项目需求及功能分析 413
19.1.3 功能模块划分及设计 414
19.2 学生管理系统编程实现 416
19.2.1 student学生类 416
19.2.2 filemanage数据操作类 419
19.2.3 Operstu学生信息操作类 423
19.3 学生管理系统总结 432