第一部分 劝学篇 8
第1讲 来自C++的一封“情书” 8
第二部分 求学篇 8
第2讲 工欲善其事,必先利其器 8
2.1 C++的发展概述 8
2.2 Microsoft Visual Studio 9
2.2.1简介 9
2.2.2成长档案 10
2.3系统的配置和要求 11
2.4安装方法 11
2.5 VS 2005界面的介绍 13
2.6开发环境的设置 14
2.7小结 15
第3讲 开心一刻:第一个C++程序 16
3.1第一个C++程序 16
3.2程序代码解析 17
3.2.1 #include指令 17
3.2.2命名空间 18
3.2.3 main()函数 19
3.2.4 body——函数体 19
3.2.5函数返回值 19
3.2.6输入输出流 19
3.2.7程序注释 21
3.3具体的C++程序的创建和运行 21
3.4 C++特点分析 24
3.5小结 25
第4讲 内功入门:数据类型 26
4.1基本组成——“拼音” 26
4.2标识符 26
4.3关键字 27
4.4“变色龙”——变量 28
4.4.1变量的定义 28
4.4.2变量名 28
4.4.3变量的初始化和赋值 29
4.4.4融会贯通 31
4.5“专一的我”——常量 33
4.5.1整型常量 33
4.5.2浮点型常量 33
4.5.3字符型常量 33
4.5.4字符串常量 34
4.5.5逻辑型常量 35
4.5.6常量的定义 35
4.6基本数据类型 37
4.7小结 38
第5讲 沟通纽带:操作符与表达式 40
5.1算术操作符 40
5.1.1“-”——负数操作符 40
5.1.2“+”——正数操作符 41
5.1.3常规运算符 41
5.2赋值操作符 43
5.3条件操作符 44
5.4关系操作符 45
5.5逻辑操作符 46
5.5.1!——逻辑非 46
5.5.2&&——逻辑与 46
5.5.3‖——逻辑或 47
5.6自增自减操作符 47
5.6.1前自增自减操作 47
5.6.2后自增自减操作 48
5.7逗号操作符 49
5.8复合表达式的求解 49
5.9融会贯通 51
5.10小结 53
第6讲 开始学习:简单语句和选择语句 54
6.1简单语句 54
6.1.1表达式语句 54
6.1.2空语句 55
6.2选择语句 56
6.2.1 if语句 56
6.2.2 Switch语句 62
6.2.3融会贯通 67
6.3小结 70
第7讲 转呀转:循环语句 71
7.1 While语句 71
7.2 Do while语句 74
7.3 For语句 76
7.4嵌套循环 79
7.5跳转语句 84
7.5.1 Break语句:完全休息 84
7.5.2 Continue语句:歇一圈再跑 86
7.5.3 Goto语句:我要去那 88
7.6小结 89
第8讲 算法与流程图 90
8.1算法 90
8.1.1算法的概念 90
8.1.2算法的特点 91
8.1.3算法的实现 91
8.2流程图 94
8.2.1流程图的概念 94
8.2.2流程图的组成 95
8.2.3流程图的绘制 95
8.3算法的表示方式 96
8.3.1自然语言表示 96
8.3.2流程图表示 96
8.3.3伪代码表示 101
8.3.4 N- S图表示 102
8.3.5 PAD图表示 104
8.4小结 104
第9讲 让你晕:数组和指针 105
9.1一维数组 105
9.1.1一维数组的定义 106
9.1.2一维数组的初始化 107
9.1.3一维数组的使用 108
9.2二维数组 110
9.2.1二维数组的定义 111
9.2.2二维数组的初始化 113
9.2.3二维数组的使用 114
9.3字符数组 115
9.3.1字符数组的定义 116
9.3.2字符数组的初始化 116
9.3.3字符串处理的函数 117
9.4指针 120
9.4.1指针的定义 120
9.4.2指针的声明 120
9.4.3指针的操作 121
9.5指针与数组 124
9.5.1指针与一维数组 124
9.5.2指针与多维数组 125
9.5.3指针与字符数组 126
9.6指针与函数 127
9.7关于指针的综合讲座 128
9.7.1再谈指针 129
9.7.2指针的算术运算 131
9.7.3运算符&和 133
9.7.4指针表达式 133
9.7.5数组和指针的关系 134
9.7.6指针和结构类型的关系 135
9.7.7指针和函数的关系 136
9.7.8指针类型转换 137
9.7.9指针的安全问题 137
9.8经典数据排序法介绍 138
9.8.1冒泡排序法 138
9.8.2选择排序法 142
9.8.3插入排序法 144
9.8.4希尔排序法 147
9.9小结 149
第10讲 内存管理 150
10.1时间和空间 150
10.2内存分配方式 150
10.3常见内存问题解析 151
10.4小结 154
第11讲 独创招式:类和对象 155
11.1类的出身:定义和声明 155
11.2类的杀伤半径:作用域 158
11.3类的数据成员 160
11.4类的成员函数 162
11.5类与结构的区别 164
11.6对象 165
11.6.1对象的创建 165
11.6.2对象与类的关系 166
11.7构造函数 166
11.7.1构造函数的定义及特点 166
11.7.2默认构造函数 169
11.8析构函数 170
11.8.1默认析构函数 171
11.8.2自定义析构函数 172
11.9友元 173
11.9.1友元类 173
11.9.2友元函数 174
11.10类的继承与派生 175
11.10.1继承和派生的基本概念 175
11.10.2类的访问控制属性 177
11.10.3基类与继承对象的初始化 179
11.10.4类的多重继承 179
11.11融会贯通 180
11.12小结 182
第12章 函数 183
12.1函数的定义 183
12.2函数的声明 184
12.3函数的特点 184
12.4函数的传值方式 185
12.5函数的返回值 188
12.6变量的分类 188
12.6.1局部变量 189
12.6.2全局变量 190
12.6.3静态变量 192
12.6.4外部变量 193
12.7函数的调用 194
12.7.1用指针调用函数 194
12.7.2使用数组调用函数 195
12.8内联函数 196
12.9 函数重载 198
12.9.1函数重载的定义 198
12.9.2函数重载与重复声明 199
12.10函数的嵌套和递归 200
12.11 main函数 202
12.12融会贯通 202
12.13小结 206
第13讲 保险公司:异常处理 207
13.1异常的分类 207
13.1.1语法错误 207
13.1.2运行错误 208
13.2典型异常回眸 208
13.3异常的处理 208
13.3.1 try语句块——发现问题 209
13.3.2 catch语句块——分析解决问题 209
13.3.3 throw语句块——得出结论 209
13.4小结 210
第14讲 模板 213
14.1函数模板 213
14.1.1模板的定义 213
14.1.2模板的使用 213
14.1.3函数模板的特殊化 214
14.2类模板 215
14.2.1类模板的定义 215
14.2.2类模板的使用 216
14.2.3类模板的特殊化 216
14.3小结 217
第15讲 容器 218
15.1容器的定义 218
15.2容器的分类 218
15.3顺序容器 218
15.3.1顺序容器的定义 219
15.3.2顺序容器元素的初始化 219
15.3.3顺序容器元素类型的规定 220
15.3.4迭代器范围 221
15.3.5顺序容器的基本操作 221
15.3.6顺序容器的比较 224
15.4关联容器 224
15.4.1关联容器的定义 224
15.4.2 map类型 225
15.4.3 set类型 227
15.4.4 multimap类型和multiset类型 229
第16讲 结构与联合 230
16.1结构体 230
16.1.1结构体类型的定义 230
16.1.2结构体类型的变量定义与初始化 232
16.1.3结构体内部成员的访问 233
16.1.4结构体的内部结构 234
16.1.5结构体与数组 235
16.1.6结构体与函数 235
16.1.7结构体与指针 237
16.1.8结构体与引用 241
16.1.9位域 242
16.2联合体 244
16.2.1联合体类型的定义 244
16.2.2联合体类型变量的定义与初始化 245
16.2.3联合体内部成员的访问 246
16.3小结 246
第17讲 文件 247
17.1文件的定义 247
17.2文件的分类 247
17.2.1依据数据存储格式 247
17.2.2依据文件存取方式 248
17.3文件流 248
17.3.1文件流对象 249
17.3.2文件的打开与关闭 249
17.3.3文件流成员函数 252
17.4 ofstream类 257
17.5 ifstream类 258
17.6文件随机访问 259
17.7天人合——融会贯通 260
17.8小结 266
第18讲 虚函数与多态 267
18.1虚函数 267
18.2虚属性继承 271
18.3纯虚函数和抽象类 275
18.4早期绑定和动态绑定 277
18.5小结 280
第19讲C++预处理器 281
19.1编译预处理指令 281
19.2包含文件 282
19.3 #define指令 282
19.4 #undef指令 284
19.5条件指令 284
19.5.1 #if指令 284
19.5.2 #endif指令 285
19.5.3 #if defined指令 285
19.5.4 #else指令 286
19.5.5 #elif指令 287
19.5.6 #error指令 288
19.6小结 288
第20讲 运算符重载 289
20.1运算符重载的基本概念 289
20.2单目运算符重载 289
20.3双目运算符重载 296
20.4小结 299
第21讲 我的地盘:命名空间 300
21.1命名空间的概念 300
21.2命名空间的定义 300
21.3命名空间的使用实例 301
21.4命名空间的名称 302
21.5 using声明和using指令 303
21.6命名空间和类的关系 304
21.7小结 305
第22讲 常见试题精选 306
22.1各种类型数字的判断 306
22.2数学趣味题和解方程 310
22.3类的使用 313
22.4文件的操作 322
第23讲 经典C++面试题解析 328
经典1: C++是面向对象语言之一,那么面向对象的三个基本特征是什么? 328
经典2:作为面向对象的基本特征之一,多态有何作用? 328
经典3: new/delete与malloc/free之间的异同点? 329
经典4: delete与delete[]有何差异? 329
经典5:在C++中,引用与指针有什么区别? 330
经典6:如果将引用作为函数的参数,其特点有哪些? 330
经典7: C++中内存的分配方式有哪些? 330
经典8:简单说明struct与class的区别。 331
经典9:简述数组与指针的有何不同? 331
经典10:将一个文件中的一组整数排序后输出到另一个文件当中。 332
经典11:写出一个链表的结点结构。 333
经典12:写一个函数,要求能够找出一个整数数组中,排列第二大的整数。 336
经典13:找出下面程序片段当中指针蕴含的错误。 336
经典14:在C++程序中调用被C编译器编译后的函数,为什么要加extern“C”,并且在使用方面有什么技巧? 337
经典15:用C++设计一个不能被继承的类。 340
经典16:访问基类的私有虚函数。 341
经典17:如何将一个单链表进行反序排列。 342
经典18:是否可以使用两个栈实现一个队列的功能。 343
经典19:编码实现常用排序方式。 345
经典20:利用编程实现基数排序。 349
经典21:输入一个整数和一棵二元树。从树的根结点开始往下访问,一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。 353
经典22:编码实现函数MTT(),设计一个程序,把一个字符串转化为一个整型数值。 355
第三部分 谋略篇 358
第24讲 如何渡过你的大学 358
24.1大一,调整自我,做好人生规划 358
24.2大二,打好坚实的基础 360
24.3大三,理论与实践相结合 360
24.4大四,思考人生 361
第25讲 求职过程 362
25.1正确的求职心态 362
25.2正确对待工作压力 363
25.3应聘求职 364
25.3.1简历的投递 365
25.3.2简历投递需要注意的问题 365
25.3.3招聘的流程 367
25.4简历 368
25.4.1简历的分类 368
25.4.2简历的制作 369
25.5求职信 375
25.5.1求职信的书写 375
25.5.2求职信范例 377
25.6面试 378
25.6.1面试的特点 378
25.6.2面试的技巧 379
25.6.3自我介绍的准备 381
25.6.4面试材料的准备 383
25.6.5着装的准备 384
25.6.6面试类型分类 387
25.6.7常见面试形式 387
25.6.8面试十二忌 390
25.6.9面试谈薪的技巧 392
25.6.10如何把握面试的结束时间 393
25.7勇于和一些招聘说“不” 394
25.8签约 394
后记 396
参考文献 397