C++ from the Ground Up:Third Edition

副标题:无

作   者:(美)Herbert Schildt著;聂雪军译

分类号:

ISBN:9787302080527

微信扫一扫,移动浏览光盘

简介

  [font color="#ff6600"]本书特点:    ·涵盖c++国际标准    ·从基础知识到高级特性,全面讲解c++语言    ·结合语言的内在技术、技巧和数百个示例    ·包括标准模版库(stl)    ·程序设计大师herbert schildt多年开发、教学经验的总结 [/font]    本书是程序设计大师herbert schildt多年开发、教学经验的总结,以实践证明行之有效的方法让您快速精通c++语言。 本书以最易于教学的编排和大量附有细致注解的典型程序示例,从基础知识到最新的高级特性,全面讲解了c++语言。通过本书,读者可以了解c++及c++程序的一般形式,并逐步掌握c++语言的核心内容,包括控制语句、运算符、变量、类和对象、异常处理、模板、名称空间、运行时类型id和标准模板库等,还能学习到用于.net编程的扩展关键字。全书内容秉承herbert一贯的写作风格:简洁、清晰、精准。 本书为c++编程入门读物,面向没有编程经验的程序设计及c++语言的初学者,适合作为高等院校计算机专业相关课程教材,也可为广大编程爱好者深入学习c++及其他面向对象语言打下坚实的基础。

目录

第1章 c++的发展历程 1

1.1 c++的起源 1

1.1.1 c的诞生 1

1.1.2 对c++的需求 3

1.1.3 c++的诞生 3

1.2 c++的发展 4

1.3 什么是面向对象程序设计 5

1.3.1 封装 5

1.3.2 多态 5

1.3.3 继承 6

1.3.4 c++实现oop 6

1.3.5 c++与java和c# 6

第2章 c++概览 8

2.1 第一个c++程序 8

2.1.1 键入程序 9

2.1.2 编译程序 9

2.1.3 运行程序 9

2.1.4 逐行解释 10

2.2 处理语法错误 12

2.3 第二个c++程序 12

.2.4 一个更实际的例子 13

2.5 一种新的数据类型 14

2.6 快速回顾 15

2.7 函数 15

2.8 函数的参数 16

2.8.1 函数返回值 18

2.8.2 函数main() 19

2.8.3 c++函数的通用形式 19

2.9 输出选项 20

2.10 两个简单的命令 20

2.10.1 if 语句 20

2.10.2 for 循环 21

2.11 代码块 22

2.12 分号与定位 23

2.13 缩进编排 24

2.14 c++中的关键字 24

2.15 c++的标识符 25

2.16 标准c++库 25

第3章 基本数据类型 26

3.1 变量的声明 27

3.1.1 局部变量 27

3.1.2 形式参数 28

3.1.3 全局变量 28

3.2 类型修饰符 29

3.3 字面量 32

3.3.1 十六进制与八进制的字面量 33

3.3.2 字符串字面量 33

3.3.3 字符转义序列 34

3.4 变量的初始化 34

3.5 运算符 36

3.5.1 算术运算符 36

3.5.2 增量运算与减量运算 37

3.5.3 关系运算符与逻辑运算符 38

3.6 表达式 41

3.6.1 表达式中的类型转换 41

3.6.2 bool类型的转换 41

3.6.3 强制转换 42

3.6.4 空格与圆括号 43

第4章 程序控制语句 44

4.1 if 语句 44

4.1.1 条件表达式 45

4.1.2 嵌套 if 语句 46

4.1.3 if-else-if 梯状结构 47

4.2 for 循环 48

4.2.1 for循环的变形 49

4.2.2 省略循环组成部分 50

4.2.3 无限循环 51

4.2.4 延时循环 51

4.3 switch语句 51

4.4 while 循环 54

4.5 do-while循环 55

4.6 使用continue 56

4.7 用break跳出循环 57

4.8 嵌套循环 58

4.9 使用goto语句 58

4.10 综合应用 59

第5章 数组和字符串 61

5.1 一维数组 61

5.2 字符串 64

5.3 字符串库函数 66

5.3.1 strcpy 66

5.3.2 strcat 67

5.3.3 strcmp 67

5.3.4 strlen 68

5.3.5 使用空字符作为终止符 69

5.4 二维数组 70

5.5 多维数组 71

5.6 数组初始化 72

5.7 字符串数组 75

第6章 指针 79

6.1 什么是指针 79

6.2 指针运算符 80

6.2.1 基本类型的重要性 81

6.2.2 通过指针赋值 82

6.3 指针表达式 82

6.3.1 指针的数学运算 83

6.3.2 指针的比较运算 84

6.4 指针和数组 84

6.4.1 对指针使用下标 86

6.4.2 指针和数组可否互换 87

6.5 指针与字符串字面量 87

6.6 指针比较的示例 88

6.7 指针数组 89

6.8 空指针约定 91

6.9 多重间接 91

6.10 指针带来的问题 93

6.10.1 未初始化的指针 93

6.10.2 无效的指针比较运算 93

6.10.3 忘记复位指针 94

第7章 函数,第一部分:基础知识 96

7.1 函数的作用域准则 96

7.1.1 局部变量 96

7.1.2 形式参数 101

7.1.3 全局变量 101

7.2 传递指针和数组 102

7.2.1 用指针调用函数 103

7.2.2 用数组调用函数 104

7.2.3 传递字符串 106

7.3 argc和argv:函数main()的参数 107

7.4 return语句 110

7.4.1 从函数中返回 110

7.4.2 返回值 111

7.4.3 void 函数 112

7.4.4 返回指针的函数 113

7.5 函数原型 114

7.6 头文件:进一步的学习 115

7.7 递归 116

第8章 函数,第二部分:引用,重载和默认参数 119

8.1 两种参数传递的方法 119

8.1.1 c++如何传递参数 119

8.1.2 用指针实现引用调用 120

8.2 引用参数 121

8.2.1 返回引用 123

8.2.2 创建有界数组 126

8.2.3 独立引用 127

8.2.4 使用引用的一些限制 127

8.3 函数的重载 128

8.4 函数的默认参数 130

8.4.1 默认参数与重载 132

8.4.2 正确使用默认参数值 133

8.5 函数重载与歧义性 133

第9章 更多的数据类型与运算符 136

9.1 限定符const和volatile 136

9.1.1 const 136

9.1.2 volatile 138

9.2 存储类型限定符 139

9.2.1 auto 139

9.2.2 extern 139

9.2.3 static变量 141

9.2.4 register变量 143

9.3 枚举 145

9.4 typedef 148

9.5 更多运算符 148

9.6 按位运算符 148

9.6.1 与、或、异或和非 149

9.6.2 移位运算符 152

9.7 运算符? 153

9.8 复合赋值运算 154

9.9 逗号运算符 155

9.10 多重赋值运算 155

9.11 使用sizeof 156

9.12 使用new和delete进行动态分配 156

9.12.1 对动态分配的内存进行初始化 158

9.12.2 分配数组的内存 159

9.13 优先级综述 161

第10章 结构与联合 162

10.1 结构 162

10.1.1 访问结构成员 164

10.1.2 结构数组 164

10.1.3 一个简单的库存信息示例程序 165

10.1.4 传递结构参数 170

10.1.5 结构的赋值 170

10.1.6 结构指针与箭头运算符 171

10.1.7 结构的引用 174

10.1.8 在结构中的数组和结构 175

10.1.9 位域 176

10.2 联合 178

10.3 用sizeof来保证可移植性 182

10.4 转入面向对象程序设计 182

第11章 类 184

11.1 类的基本概念 184

11.2 进一步学习类的成员访问 187

11.3 构造函数和析构函数 189

11.3.1 参数化构造函数 191

11.3.2 另一种初始化方法 194

11.4 类与结构的关系 195

11.5 联合与类 197

11.6 内联函数 197

11.7 对象数组 200

11.8 对象指针 202

11.9 对象引用 203

第12章 类的深入学习 204

12.1 友员函数 204

12.2 重载构造函数 207

12.3 动态初始化 208

12.4 对象赋值 210

12.5 将对象传递给函数 211

12.5.1 构造函数、析构函数和对象传递 212

12.5.2 传递对象时一个潜在的问题 213

12.6 返回对象 215

12.7 创建和使用复制构造函数 217

12.7.1 复制构造函数与参数 218

12.7.2 复制构造函数与初始化 219

12.7.3 在返回对象时使用复制构造函数 220

12.8 关键字this 222

第13章 运算符的重载 223

13.1 使用成员函数重载运算符 223

13.1.1 使用成员函数重载一元运算符 225

13.1.2 运算符重载的技巧与限制 230

13.2 非成员运算符函数 230

13.3 深入学习赋值运算符 236

13.4 重载[ ] 239

13.5 重载( ) 241

13.6 重载其他的运算符 242

13.7 运算符重载的另一个示例 243

第14章 继承 247

14.1 继承的介绍 247

14.2 基类的访问控制 249

14.3 使用保护成员 251

14.4 多重继承 255

14.5 构造函数、析构函数和继承 256

14.5.1 何时执行构造函数和析构函数 256

14.5.2 将参数传递给基类构造函数 258

14.6 授权访问 261

14.7 虚基类 263

第15章 虚函数与多态 267

15.1 指向派生类型的指针 267

15.2 虚函数 269

15.2.1 虚函数的继承 271

15.2.2 为什么需要虚函数 273

15.2.3 虚函数的简单应用 273

15.2.4 纯虚函数与抽象类 276

15.3 早绑定与晚绑定 278

第16章 模板 279

16.1 通用函数 279

16.2 显式重载通用函数 281

16.2.1 重载函数模板 283

16.2.2 模板函数使用标准参数 283

16.2.3 通用函数的限制 284

16.3 通用类 285

16.3.1 使用两个通用数据类型的示例 287

16.3.2 创建一个通用数组类 288

16.3.3 在通用类中使用标准类型的参数 289

16.3.4 模板类使用默认参数 290

16.3.5 类的显式特例化 292

第17章 异常处理 293

17.1 异常处理的基础 293

17.1.1 异常类 297

17.1.2 使用多个catch语句 298

17.2 异常处理的选项 299

17.2.1 捕获所有的异常 299

17.2.2 对函数中抛出异常的限制 301

17.2.3 再次抛出异常 302

17.3 处理运算符new抛出的异常 303

17.4 重载new和delete 305

第18章 c++的i/o系统 309

18.1 旧式和现代c++的i/o系统 309

18.2 c++流 309

18.3 c++中的流类型 310

18.4 重载i/o运算符 311

18.4.1 创建插入符 312

18.4.2 使用友员函数重载插入符 313

18.4.3 重载提取符 314

18.5 格式化i/o 316

18.5.1 使用ios的成员函数来格式化数据的i/o 316

18.5.2 使用i/o操控符 319

18.5.3 创建你自己的操控符函数 321

18.6 文件i/o 323

18.6.1 打开和关闭一个文件 323

18.6.2 文本文件的读与写 324

18.6.3 无格式的二进制i/o 325

18.6.4 数据块的读写 327

18.6.5 检测eof 328

18.6.6 文件比较的示例程序 328

18.7 其他的二进制i/o函数 330

18.8 随机访问 331

18.9 检测i/o状态 333

18.10 定制的i/o与文件 334

第19章 运行时类型识别与强制转换运算符 336

19.1 运行时类型识别(rtti) 336

19.1.1 运行时类型识别的简单应用 339

19.1.2 typeid可以应用于模板类 341

19.2 强制转换运算符 343

19.2.1 dynamic_cast 344

19.2.2 const_cast 348

19.2.3 static_cast 349

19.2.4 reinterpret_cast 349

第20章 名字空间和其他高级主题 351

20.1 名字空间 351

20.1.1 名字空间的基本概念 351

20.1.2 using 354

20.1.3 匿名名字空间 355

20.2 std名字空间 356

20.3 函数指针 357

20.4 类的静态成员 361

20.5 const成员函数和mutable 362

20.6 显式构造函数 363

20.7 成员初始化语法 365

20.8 关键字asm 367

20.9 链接指定 367

20.10 成员指针运算符.*和-]* 368

20.11 创建转换函数 370

第21章 标准模板库 372

21.1 stl概览 372

21.2 容器类 374

21.3 vector 375

21.3.1 使用迭代器访问vector 379

21.3.2 在vector中插入和删除元素 380

21.3.3 在vector中保存对象 381

21.4 list 384

21.4.1 list排序 387

21.4.2 list合并 388

21.4.3 在list中存储对象 389

21.5 map 391

21.6 算法 395

21.6.1 统计 397

21.6.2 删除和替换元素 398

21.6.3 反序 400

21.6.4 序列的变形 400

21.6.5 探讨其他的算法 401

21.7 string类 401

21.7.1 string的一些成员函数 404

21.7.2 将字符串放入其他容器中 407

21.8 关于stl的最后思考 408

第22章 c++预处理器 409

22.1 #define 409

22.2 #error 412

22.3 #include 412

22.4 条件编译指令 413

22.4.1 #if,#else,#elif和#endif 413

22.4.2 #ifdef与#ifndef 415

22.4.3 #undef 415

22.4.4 使用defined 416

22.5 #line 416

22.6 #pragma 417

22.7 预处理器运算符#和## 417

22.8 预定义的宏 418

22.9 最后的思考 419

附录a 基于c的i/o 420

a.1 c的i/o系统使用流 420

a.2 函数printf()和scanf() 421

a.3 c的文件系统 426

a.4 fseek()与随机访问i/o 432

a.5 fprintf()和fscanf() 433

a.6 删除文件 433

附录b 使用旧的c++编译器 434

附录c .net对c++的受控扩展 436

c.1 .net中的扩展关键字 436

c.2 扩展预处理指令 438

c.3 属性attribute 438

c.4 编译受控c++代码 438


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

C++ from the Ground Up:Third Edition
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon