《零点起飞学C++》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:秦广军编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302317371
  • 页数:374 页
图书介绍:本书从面向过程到面向对象逐步讲授如何使用C++语言。第1篇包括C++预备知识、Visual C++开发环境、基本数据类型、变量和常量、C++中的运算符、表达式和语句、指针的操作、复合数据类型、函数、输入输出等。第2篇包括封装、命名空间和作用域、继承和派生、多态、模板及面向对象编程案例。第3篇包括string类、异常处理、内存管理、预处理、错处和调试。第4篇包括4种类型的应用案例。

第1篇 面向过程的C+编程 2

第1章 走进C++ 2

1.1认识C++ 2

1.1.1 C++的发展历程 2

1.1.2 C++的应用领域 2

1.2 C++开发环境的搭建 3

1.2.1安装过程 3

1.2.2开发环境介绍 4

1.3认识第一个程序 7

1.4小结 11

第2章 数据类型 12

2.1数据的表示——数字运算型 12

2.1.1表示整数的类型——整型 12

2.1.2表示小数的类型——实型 13

2.1.3浮点型 14

2.1.4双精度型 15

2.2是非问题——逻辑运算型 15

2.2.1“并且”的运算——与运算 15

2.2.2“或者”的运算——或运算 16

2.2.3“No”的运算——非运算 16

2.2.4逻辑运算的组合 17

2.3文本的基础——字符型和字符串 17

2.3.1单个字符的表示——字符型 17

2.3.2多个字符的表示——字符串 19

2.3.3字符与字符串的差异 19

2.4复杂数据的表示——复合类型 19

2.5小结 20

2.6习题 20

第3章 数据的指代——变量和常量 21

3.1指代可变的量——变量 21

3.1.1变量是什么 21

3.1.2多种多样的变量 23

3.1.3变量的初始化 25

3.1.4如何对变量命名 26

3.2指代不变的量——常量 26

3.2.1常量是什么 26

3.2.2多种多样的常量 27

3.2.3使用常量需要注意的问题 29

3.2.4常量的初始化 29

3.2.5如何对常量命名 29

3.3小结 30

3.4习题 30

第4章 数据运算的核心——运算符 31

4.1加减乘除的运算——算术运算符 31

4.2是是非非的运算——逻辑运算符 34

4.3比较大小的运算——关系运算符 34

4.4位运算 37

4.5最基础的运算——赋值 40

4.6运算符的优先级和结合性 41

4.6.1优先级 41

4.6.2结合性 44

4.7小结 44

4.8习题 44

第5章 运算的最小单位——表达式 46

5.1使用表达式 46

5.1.1表达式的种类 46

5.1.2表达式到底是什么 47

5.1.3如何写表达式 47

5.2数据类型的转换 48

5.2.1隐式转换 48

5.2.2显式转换 50

5.3小结 53

5.4习题 53

第6章 程序的最小单位——语句 55

6.1认识语句 55

6.1.1单一语句——简单语句 55

6.1.2多个语句——语句块 56

6.2程序的执行顺序 58

6.3因地制宜——选择型语句 58

6.3.1如果…就…——if语句 58

6.3.2多选一——switch语句 61

6.4周而复始——循环型语句 65

6.4.1只要…就…——while语句 65

6.4.2如果…继续…—— do… while语句 66

6.4.3 for语句 67

6.5各种标志——标签语句 69

6.5.1程序中的标志——普通标签语句 69

6.5.2特殊标签语句 71

6.6快捷通道——跳转语句 71

6.6.1跳出来——break语句 71

6.6.2 continue语句 72

6.6.3 goto语句 73

6.7语句嵌套 74

6.7.1自增 74

6.7.2自减 74

6.7.3逗号语句 75

6.7.4选择的简化版——?…:语句 75

6.8小结 76

6.9习题 76

第7章 指针 78

7.1什么是地址 78

7.2如何定义指针 79

7.2.1指针的定义 79

7.2.2向左向右分析指针 80

7.2.3 sizeof 80

7.3指针的类型 81

7.4初始化指针 83

7.4.1用指针的地址进行初始化 84

7.4.2用变量的地址进行初始化 84

7.4.3用new分配的内存单元进行初始化 85

7.4.4用malloc分配的内存单元进行初始化 85

7.5指针的运算 87

7.5.1算术运算 87

7.5.2关系运算 89

7.6指针嵌套——指针的指针 90

7.7使用指针 92

7.7.1给指针赋值 92

7.7.2操作符 93

7.8指针与引用 93

7.9特殊指针 96

7.9.1 void型指针 96

7.9.2空指针 97

7.10小结 98

7.11习题 98

第8章 多数据的处理——复合类型 100

8.1静态数组 100

8.1.1指定维数完整 100

8.1.2维数不全 101

8.1.3无维数 101

8.2动态数组 101

8.2.1基于堆的动态数组 101

8.2.2基于栈的动态数组 103

8.3数据元素的存放 104

8.3.1列优先存放 104

8.3.2行优先存放 105

8.4字符数组 105

8.4.1定义和使用 106

8.4.2字符数组和字符串 106

8.4.3字符数组和字符串指针 107

8.5初始化 107

8.5.1定义时初始化 107

8.5.2赋值初始化数组 109

8.6指针与数组 110

8.6.1指向数组的指针 110

8.6.2指针数组 111

8.7数组的使用 112

8.7.1索引方式 112

8.7.2指针方式 113

8.8枚举 114

8.9结构体 116

8.10共用体 118

8.11自定义类型 120

8.11.1 typedef的作用 120

8.11.2定义自己的类型 122

8.12小结 124

8.13习题 124

第9章 通用语句块——函数 125

9.1定义函数 125

9.1.1定义方式 125

9.1.2函数定义的示例 127

9.2不同的函数 130

9.2.1从返回值类型来划分 130

9.2.2从作用域来划分 130

9.2.3从C++++类的成员函数特性来划分 132

9.3函数通用的关键——参数 133

9.3.1定义时候的参数——形参 133

9.3.2调用时候的参数——实参 134

9.4有借有还——函数返回值 135

9.4.1返回值 136

9.4.2返回表达式 136

9.5调用函数 136

9.5.1单独调用 136

9.5.2函数表达式调用 137

9.5.3嵌套调用 137

9.5.4参数传递方式 138

9.6自己调用自己——递归函数 139

9.7函数指针 140

9.8函数作为参数 141

9.9 main()函数分析 142

9.10函数的规范编写 144

9.11小结 144

9.12习题 144

第10章C++中的输入/输出 146

10.1输入/输出库iostream 146

10.1.1操作标准I/O 146

10.1.2读写文件I/O 147

10.1.3操作字符串I/O 148

10.2输出流 149

10.2.1输出预定义类型数据 149

10.2.2输出自定义数据类型 150

10.3输入流 151

10.3.1输入预定义类型数据 151

10.3.2输入自定义类型数据 152

10.4格式化输入/输出 153

10.4.1使用ios类成员函数进行格式化 153

10.4.2使用操纵函数进行格式化控制 155

10.5使用文件 157

10.5.1打开/关闭文件 157

10.5.2顺序读写文件 159

10.5.3随机读写文件 160

10.6小结 162

10.7习题 162

第11章 面向过程的程序设计实战 164

11.1问题定义 164

11.2需求分析 164

11.3总体设计 165

11.3.1数据结构 165

11.3.2图书基础数据维护模块 166

11.3.3图书借阅模块 168

11.3.4图书返还模块 168

11.3.5会员基础数据维护模块 169

11.3.6总体流程图 171

11.4编码 172

11.4.1主控文件bookmanager.cpp 172

11.4.2菜单处理头文件mainfunction.h 172

11.4.3数据结构头文件datainfo.h 173

11.4.4功能函数头文件subfunction.h 173

11.4.5菜单处理实现文件mainfunction.cpp 174

11.4.6功能函数实现文件subfunction.cpp 177

11.5小结 187

第2篇 面向对象的C+编程 190

第12章 面向对象 190

12.1面向对象的概念 190

12.2面向对象的程序设计 192

12.3对象和类 192

12.4面向对象的特征 193

12.4.1封装 193

12.4.2继承 194

12.4.3多态 194

12.5小结 195

12.6习题 195

第13章 面向对象的本质——封装 196

13.1构建类 196

13.1.1声明类 196

13.1.2构建属性 198

13.1.3构建类的方法 198

13.1.4使用构造函数 199

13.1.5使用析构函数 202

13.1.6可以共享的成员——静态成员 203

13.1.7构建友元 204

13.1.8访问修饰符 206

13.1.9指向类成员的指针 207

13.1.10类中定义的类——嵌套类 208

13.1.11类文件的组织 209

13.2类的具体表现——对象 211

13.2.1定义对象 211

13.2.2使用对象 212

13.2.3指向自身的指针——this指针 214

13.3小结 214

13.4习题 214

第14章 命名空间和作用域 216

14.1为什么使用命名空间 216

14.2定义命名空间 216

14.3如何使用命名空间 218

14.4作用域 220

14.4.1什么叫作用域 220

14.4.2作用域的分类 221

14.5小结 223

14.6习题 223

第15章 继承和派生 225

15.1继承和派生的关系 225

15.2派生一个类 225

15.2.1派生的起点——基类 226

15.2.2派生的方式 227

15.2.3使用构造函数 229

15.2.4使用析构函数 231

15.2.5同名方法的使用 232

15.2.6同名属性的使用 234

15.3单重继承 235

15.4多重继承 235

15.4.1为什么要多重继承 235

15.4.2构造多重继承 236

15.4.3析构函数和构造函数 237

15.4.4多重继承的二义性 239

15.5虚继承与虚基类 241

15.5.1什么是虚基承 241

15.5.2初始化虚基类 244

15.5.3集成虚基类 246

15.6继承中的限制 246

15.7小结 247

15.8习题 247

第16章 灵活的代码——多态 250

16.1什么是多态 250

16.2宏多态 251

16.3虚函数 252

16.3.1虚函数的作用 252

16.3.2静态绑定 254

16.3.3动态绑定 254

16.3.4纯虚函数 254

16.4抽象类 256

16.4.1什么是抽象类 256

16.4.2抽象类的派生 256

16.5运算符的多态——运算符重载 257

16.5.1为什么要重载运算符 257

16.5.2重载的限制 258

16.5.3重载一元运算符 259

16.5.4重载二元运算符 260

16.6函数重载 261

16.6.1参数类型不同 261

16.6.2参数个数不同 262

16.7流的重载 263

16.7.1流插入的重载 263

16.7.2流提取的重载 264

16.8覆盖 266

16.8.1覆盖函数 266

16.8.2覆盖变量 267

16.9小结 268

16.10习题 268

第17章 模板 271

17.1什么是模板 271

17.2类模板 272

17.2.1定义类模板 272

17.2.2使用类模板 273

17.2.3类模板和模板类的区别 275

17.3函数模板 276

17.3.1定义函数模板 276

17.3.2使用函数模板 276

17.3.3函数模板和模板函数的区别 278

17.4模板的实例化 278

17.5模板的作用 279

17.6基于模板的元编程 279

17.6.1什么是元编程 279

17.6.2基于模板的元编程 280

17.7小结 281

17.8习题 281

第18章 面向对象实战 283

18.1问题定义 283

18.2需求分析 283

18.3面向对象分析与设计 284

18.3.1类结构的设计 284

18.3.2类的可见性 284

18.3.3类的结构图 285

18.4编码和测试 286

18.4.1预编译头文件Stdafx.h 286

18.4.2 CCNTime类的头文件Cntime.h 287

18.4.3 CCNTime类的实现文件Cntime.cpp 288

18.4.4主文件main.cpp 295

18.5小结 296

第3篇C+高级开发技术 298

第19章 文本处理——string类 298

19.1定义字符串 298

19.2 string类的常用方法 300

19.3 string类的运算 302

19.3.1查找字符串 302

19.3.2替换字符串 304

19.3.3取子字符串 305

19.3.4比较字符串 305

19.3.5连接字符串 306

19.3.6插入字符串 306

19.3.7获取字符串大小和容量 307

19.4小结 307

19.5习题 308

第20章 不让程序出错——异常处理 309

20.1异常处理机制 309

20.2抛出异常 309

20.3捕获异常 311

20.4什么是异常处理的规格 313

20.5常见的标准异常 313

20.6小结 314

20.7习题 314

第21章 内存管理 316

21.1内存的分类 316

21.2管理栈内存 317

21.2.1申请栈内存 317

21.2.2使用栈内存 318

21.2.3释放栈内存 320

21.2.4获取栈内存 320

21.3管理堆内存 321

21.3.1申请堆内存 321

21.3.2使用堆内存 321

21.3.3释放堆内存 322

21.3.4改变大小 323

21.4小结 324

21.5习题 324

第22章 预处理 325

22.1什么是预处理 325

22.2常见的预处理 325

22.2.1文件包含#include 326

22.2.2布局控制#pragma 326

22.2.3宏替换#define 330

22.2.4条件编译 331

22.3其他预处理指令 332

22.4小结 333

22.5习题 333

第23章 错误与调试 335

23.1什么是错误 335

23.2错误的种类 335

23.2.1语法错误 335

23.2.2链接错误 336

23.2.3运行时错误 338

23.3排查错误 339

23.3.1看懂错误信息 339

23.3.2错误发现的常见方法 339

23.3.3如何调试 340

23.4常见bug的分类 340

23.5调试的窍门 341

23.5.1使用断言assert 341

23.5.2使用断言verify 342

23.5.3 assert和verify的差异 342

23.5.4轨迹跟踪 343

23.5.5使用断点 344

23.6使用交互式调试 345

23.6.1设置和删除断点 345

23.6.2使用Debug窗口 345

23.6.3使用Watch面板 347

23.6.4使用步进方式调试 347

23.7小结 347

23.8习题 348

第4篇 应用开发实战 350

第24章 数据结构应用实战 350

24.1采用链表模拟堆栈 350

24.1.1链栈类的定义文件LinkStack.h 350

24.1.2链栈类的实现文件LinkStack.cpp 351

24.1.3链栈类的使用文件test24-1.cpp 354

24.2遍历图 355

24.2.1存储/遍历图 355

24.2.2图遍历的代码 356

24.3小结 359

第25章 网络应用案例 360

25.1客户机/服务器通信 360

25.1.1 WinSocket2常用函数 360

25.1.2服务器/客户机编程模式 363

25.1.3服务器和客户端公用文件 364

25.1.4服务器端实现 367

25.1.5客户端实现 368

25.2自定义协议 369

25.2.1自定义协议 370

25.2.2自定义协议的实现 371

25.3小结 374