《C++入门很简单》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:池剑锋等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302328247
  • 页数:433 页
图书介绍:本书主要讲解C++基本特性并通过与实践相结合来讲述C++编程方法和技巧。全书共19章,前7章主要讲解和演示C++的面向结构化编程的特点与方法,打牢语法基础。在第8~11章主要讲解C++面向对象编程的特点及其功能。后续的章节讲解C++的泛型程序设计技巧与方法,最后综合本书的知识点来组织实现一个具体的项目。

第1篇C++编程基础篇 2

第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篇 面向对象程序设计篇 174

第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++模板篇 272

第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篇 输入/输出操作篇 336

第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篇 项目实战篇 412

第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