网上购物 货比三家
您现在的位置:快乐比价网 > 图书 > 计算机与网络 > 软件工程 > 商品详情

C++入门经典(第3版)

分享到:
C++入门经典(第3版)

最 低 价:¥73.50

定 价:¥98.00

作 者:(美)Ivor Horton

出 版 社:清华大学出版社

出版时间:2006 年1月

I S B N:7302120625

价格
73.50元
价格
81.30元
  • C++入门经典
  • 送货上门
  • 价格
    81.30元
    价格
    81.30元
    价格
    83.30元
    价格
    83.30元
    价格
    83.30元

    商品详情

    编辑推荐

    这是一本曾成就无数C++程序员的经典名著,厚而不“重”,可帮助您轻松掌握C++的各种编程知识,为您的职业生涯打下坚实的基础。

    内容简介

    c++在几乎所有的计算环境中都非常普及,而且可以用于几乎所有的应用程序。c++从c中继承了过程化编程的高效性,并集成了面向对象编程的功能。c++在其标准库中提供了大量的功能。有许多商业c++库支持数量众多的操作系统环境和专业应用程序。但因为它的内容太多了,所以掌握c++并不十分容易。本书详述了c++语言的各个方面,包括数据类型、程序控制、函数、指针、调试、类、重载、继承、多态性、模板、异常和输入输出等内容。每一章都以前述内容为基础,每个关键点都用具体的示例进行详细的讲解。
      本书基本不需要读者具备任何c++知识,书中包含了理解c++的所有必要知识,读者可以从头开始编写自己的c++程序。本书也适合于具备另一种语言编程经验但希望全面掌握c++语言的读者。
      c++是一个内涵丰富、功能强大的语言,这就是许多专业人士选择它的原因。初学者常常发现c++比其他语言难懂,这也许是因为它的功能和适用范围比较复杂。但是,c++并不比其他语言难学,只是内容比其他语言多一些而已。
      本书的宗旨是尽可能使c++容易理解和掌握,读者不需要有任何编程知识或经验,基本上,只要对编程有所了解,即可从本书中学到有关编程的所有知识。在本书中,每个c++语言特性都用具体的例子来说明,通过每章最后的练习还可以测试自己对所学知识的掌握情况。读者还可以通过例子学习和理解c++的更高级特性,这些例子不仅展示了这些特性的工作方式,还说明了它们采用这种方式的原因。每一章都建立在前面章节内容的基础之上,读者可以循序渐进地提高c++编程技巧和使用c++语言的信心。
      尽管c++学起来不是很难,但也不简单。对于初学者,必须认真阅读本书超过800页的内容!只要端正学习编程的态度,付出一定的努力,读者一定能利用本书成为一位有竞争力的c++程序员。要学习的内容很多,但得到的乐趣也很多。读者一定能体会到掌握一门目前功能最强大的编程语言的成就感。

    作者简介

    Ivor Horton是世界著名的计算机图书作家,主要从事与编程相关的顾问以及撰写工作,曾帮助无数程序员步入编程的殿堂。他曾在IBM工作多年,能够使用多种语言进行编程,设计和实现了实时闭环工业控制系统。Horton拥有丰富的教学经验,同时还是机械、加工和电子CAD系统、机械CAM系统和DNC/CNC系统方面的专家。Ivor Horton还著有Beginning Visual C++ 6.0、Beginning C Programming和Beginning Java 2等多部入门级好书。
    译者简介
    李予敏,计算机科学及其应用专业博士,某研究院高级研究员,拥有.. << 查看详细

    目录

    第1章 基本概念1
    1.1 编程语言1
    1.1.1 编程语言简史1
    1.1.2 解释性程序和编译性程序的执行过程2
    1.1.3 库3
    1.2 c++是一种强大的语言3
    1.3 一个简单的c++程序4
    1.3.1 名称6
    1.3.2 命名空间7
    1.4 关键字9
    1.5 c++语句和语句块9
    1.6 程序结构10
    1.7 从源文件中创建可执行文件12
    1.7.1 编译12
    1.7.2 链接13
    1.8 c++源字符14
    1.8.1 通用字符集15
    1.8.2 三字符序列15
    1.8.3 转义序列16
    1.8.4 语句中的空白18
    .1.9 程序的注释19
    1.10 标准库20
    1.11 用c++编程21
    1.12 本章小结22
    1.13 练习23
    第2章 基本数据类型和计算24
    2.1 数据和数据类型24
    2.2 进行简单的计算24
    2.2.1 字面量25
    2.2.2 整型字面量25
    2.2.3 整数的算术运算27
    2.2.4 运算符的优先级和相关性30
    2.3 使用变量32
    2.4 整型变量33
    2.4.1 整型变量类型35
    2.4.2 整数的取值范围37
    2.4.3 整型字面量的类型38
    2.5 赋值运算符39
    2.5.1 多次赋值40
    2.5.2 修改变量的值40
    2.6 整数的递增和递减42
    2.7 const关键字44
    2.8 整数的数字函数45
    2.9 浮点数49
    2.9.1 浮点数的数据类型49
    2.9.2 浮点数的操作51
    2.9.3 使用浮点数值53
    2.9.4 数值函数55
    2.10 使用字符57
    2.10.1 字符字面量57
    2.10.2 初始化char变量58
    2.10.3 使用扩展字符集60
    2.11 初始值的函数表示法62
    2.12 本章小结62
    2.13 练习63
    第3章 处理基本数据类型64
    3.1 混合的表达式64
    3.1.1 赋值和不同的类型65
    3.1.2 显式强制转换66
    3.1.3 老式的强制转换68
    3.2 确定类型70
    3.3 按位运算符73
    3.3.1 移位运算符74
    3.3.2 位模式下的逻辑运算76
    3.4 枚举数据类型85
    3.4.1 匿名枚举86
    3.4.2 在整型和枚举类型之间强制转换87
    3.5 数据类型的同义词89
    3.6 变量的生存期90
    3.6.1 自动变量90
    3.6.2 定位变量的声明92
    3.6.3 全局变量92
    3.6.4 静态变量95
    3.7 特殊的类型修饰符96
    3.8 声明外部变量96
    3.9 优先级和相关性96
    3.10 本章小结97
    3.11 练习98
    第4章 选择和决策99
    4.1 比较数据值99
    4.1.1 应用比较运算符100
    4.1.2 比较浮点数值102
    4.2 if语句102
    4.3 if-else语句110
    4.4 逻辑运算符114
    4.4.1 逻辑与运算符115
    4.4.2 逻辑或运算符115
    4.4.3 逻辑非运算符115
    4.5 条件运算符118
    4.6 switch语句120
    4.7 无条件分支124
    4.8 决策语句块和变量作用域125
    4.9 本章小结126
    4.10 练习126
    第5章 循环127
    5.1 理解循环127
    5.2 while循环128
    5.3 do-while循环130
    5.4 for循环133
    5.4.1 循环和变量作用域135
    5.4.2 用浮点数值控制for循环137
    5.4.3 使用更复杂的循环控制表达式140
    5.5 嵌套的循环143
    5.6 跳过循环迭代147
    5.7 循环的中断150
    5.8 本章小结155
    5.9 练习155
    第6章 数组和字符串156
    6.1 数据数组156
    6.1.1 使用数组156
    6.1.2 初始化数组161
    6.1.3 字符数组164
    6.2 多维数组168
    6.2.1 初始化多维数组170
    6.2.2 多维字符数组172
    6.3 string类型174
    6.3.1 声明string对象175
    6.3.2 使用string对象177
    6.3.3 访问字符串中的字符179
    6.3.4 访问子字符串182
    6.3.5 比较字符串182
    6.3.6 搜索字符串188
    6.3.7 修改字符串196
    6.4 string类型的数组201
    6.5 宽字符的字符串202
    6.6 本章小结202
    6.7 练习203
    第7章 指针204
    7.1 什么是指针204
    7.2 指针的声明205
    7.3 指针的初始化210
    7.4 常量指针和指向常量的指针220
    7.5 指针和数组221
    7.5.1 指针的算术运算221
    7.5.2 使用数组名的指针表示法224
    7.5.3 对多维数组使用指针227
    7.5.4 c样式字符串的操作229
    7.6 动态内存分配231
    7.6.1 自由存储区232
    7.6.2 运算符new和delete232
    7.6.3 数组的动态内存分配233
    7.6.4 动态内存分配的危险235
    7.6.5 转换指针241
    7.7 本章小结241
    7.8 练习242
    第8章 使用函数编程243
    8.1 程序的分解243
    8.2 理解函数245
    8.2.1 定义函数245
    8.2.2 函数的声明249
    8.3 给函数传送参数251
    8.3.1 按值传送机制251
    8.3.2 按引用传送机制260
    8.3.3 main()的参数264
    8.4 默认的参数值265
    8.5 从函数中返回值268
    8.5.1 返回一个指针268
    8.5.2 返回一个引用272
    8.5.3 从函数中返回新变量273
    8.6 内联函数273
    8.7 静态变量273
    8.8 本章小结276
    8.9 练习276
    第9章 函数278
    9.1 函数的重载278
    9.1.1 函数的签名278
    9.1.2 重载和指针参数281
    9.1.3 重载和引用参数281
    9.1.4 重载和const参数283
    9.1.5 重载和默认参数值284
    9.2 函数模板285
    9.2.1 创建函数模板的实例286
    9.2.2 显式指定模板参数288
    9.2.3 模板的说明289
    9.2.4 函数模板和重载291
    9.2.5 带有多个参数的模板292
    9.3 函数指针293
    9.3.1 声明函数指针294
    9.3.2 把函数作为参数传送297
    9.3.3 函数指针的数组299
    9.4 递归299
    9.5 本章小结307
    9.6 练习307
    第10章 程序文件和预处理器指令309
    10.1 使用程序文件309
    10.1.1 名称的作用域310
    10.1.2 “一个定义”规则312
    10.1.3 程序文件和链接313
    10.1.4 外部名称314
    10.2 命名空间318
    10.2.1 全局命名空间319
    10.2.2 定义命名空间319
    10.2.3 使用using声明322
    10.2.4 函数和命名空间322
    10.2.5 函数模板和命名空间326
    10.2.6 扩展命名空间327
    10.2.7 未指定名称的命名空间330
    10.2.8 命名空间的别名331
    10.2.9 嵌套的命名空间331
    10.3 预处理器332
    10.3.1 在程序中包含头文件333
    10.3.2 程序中的置换334
    10.3.3 宏置换336
    10.3.4 放在多行代码中的预处理器指令338
    10.3.5 把字符串作为宏参数339
    10.3.6 在宏表达式中连接参数340
    10.4 逻辑预处理器指令340
    10.4.1 逻辑#if指令341
    10.4.2 测试特定值的指令343
    10.4.3 多个代码选择块343
    10.4.4 标准的预处理器宏344
    10.4.5 #error和#pragma指令345
    10.5 调试方法346
    10.5.1 集成调试器346
    10.5.2 调试中的预处理器指令347
    10.5.3 使用assert宏353
    10.6 本章小结354
    10.7 练习355
    第11章 创建自己的数据类型356
    11.1 对象的概念356
    11.2 c++中的结构357
    11.2.1 理解结构357
    11.2.2 定义结构类型358
    11.2.3 创建结构类型的对象360
    11.2.4 访问结构对象的成员360
    11.2.5 对结构使用指针366
    11.3 联合370
    11.3.1 声明联合371
    11.3.2 匿名联合372
    11.4 更复杂的结构373
    11.5 本章小结379
    11.6 练习380
    第12章 类381
    12.1 类和面向对象编程381
    12.1.1 封装382
    12.1.2 继承383
    12.1.3 多态性384
    12.1.4 术语385
    12.2 定义类385
    12.3 构造函数388
    12.3.1 把构造函数的定义放在类的外部390
    12.3.2 默认的构造函数392
    12.3.3 默认的初始化值395
    12.3.4 在构造函数中使用初始化列表396
    12.3.5 使用explicit关键字397
    12.4 类的私有成员398
    12.4.1 访问私有类成员402
    12.4.2 默认的副本构造函数404
    12.5 友元405
    12.5.1 类的友元函数405
    12.5.2 友元类408
    12.6 this指针409
    12.7 const对象和const成员函数413
    12.7.1 类中的mutable数据成员415
    12.7.2 常量的强制转换416
    12.8 类的对象数组416
    12.9 类对象的大小419
    12.10 类的静态成员421
    12.10.1 类的静态数据成员421
    12.10.2 类的静态成员函数426
    12.11 本章小结427
    12.12 练习428
    第13章 类的操作429
    13.1 类对象的指针和引用429
    13.2 指针作为数据成员430
    13.2.1 定义package类431
    13.2.2 定义truckload类434
    13.2.3 实现truckload类435
    13.3 控制对类的访问443
    13.4 副本构造函数的重要性445
    13.5 对象内部的动态内存分配453
    13.5.1 析构函数453
    13.5.2 定义析构函数453
    13.5.3 默认的析构函数454
    13.5.4 实现析构函数456
    13.6 类的引用457
    13.7 本章小结459
    13.8 练习460
    第14章 运算符重载461
    14.1 为自己的类实现运算符461
    14.1.1 运算符重载461
    14.1.2 可以重载的运算符462
    14.1.3 实现重载运算符462
    14.1.4 全局运算符函数466
    14.1.5 提供对运算符的全部支持466
    14.1.6 运算符函数术语470
    14.1.7 重载赋值运算符470
    14.1.8 重载算术运算符477
    14.1.9 重载下标运算符482
    14.1.10 重载类型转换489
    14.1.11 重载递增和递减运算符490
    14.1.12 智能指针491
    14.1.13 重载运算符new和delete497
    14.2 本章小结497
    14.3 练习498
    第15章 继承499
    15.1 类和面向对象编程499
    15.2 类的继承500
    15.2.1 继承和聚合501
    15.2.2 从基类中派生新类502
    15.3 继承下的访问控制505
    15.4 把类的成员声明为protected508
    15.5 派生类成员的访问级别510
    15.5.1 在类层次结构中使用访问指定符511
    15.5.2 改变继承成员的访问指定符512
    15.6 派生类中的构造函数操作514
    15.7 继承中的析构函数520
    15.8 重复的成员名522
    15.9 多重继承524
    15.9.1 多个基类524
    15.9.2 继承成员的模糊性526
    15.9.3 重复的继承531
    15.9.4 虚基类532
    15.10 在相关的类类型之间转换533
    15.11 本章小结534
    15.12 练习534
    第16章 虚函数和多态性536
    16.1 理解多态性536
    16.1.1 使用基类指针536
    16.1.2 调用继承的函数538
    16.1.3 虚函数542
    16.1.4 虚函数中的默认参数值549
    16.1.5 通过引用来调用虚函数553
    16.1.6 调用虚函数的基类版本554
    16.1.7 在指针和类对象之间转换555
    16.1.8 动态强制转换557
    16.2 多态性的成本559
    16.3 纯虚函数560
    16.3.1 抽象类560
    16.3.2 间接的抽象基类563
    16.4 通过指针释放对象566
    16.5 在运行期间标识类型569
    16.6 类成员的指针570
    16.6.1 数据成员指针570
    16.6.2 成员函数指针574
    16.7 本章小结578
    16.8 练习578
    第17章 程序错误和异常处理580
    17.1 处理错误580
    17.2 理解异常581
    17.2.1 抛出异常581
    17.2.2 导致抛出异常的代码586
    17.2.3 嵌套的try块588
    17.3 用类对象作为异常591
    17.3.1 匹配catch处理程序和异常592
    17.3.2 用基类处理程序捕获派生类异常596
    17.3.3 重新抛出异常598
    17.3.4 捕获所有的异常601
    17.4 抛出异常的函数603
    17.4.1 函数try块603
    17.4.2 在构造函数中抛出异常605
    17.4.3 异常和析构函数606
    17.5 标准库异常606
    17.5.1 标准库异常类607
    17.5.2 使用标准异常608
    17.6 本章小结609
    17.7 练习610
    第18章 类模板611
    18.1 理解类模板611
    18.2 定义类模板612
    18.2.1 模板参数613
    18.2.2 简单的类模板613
    18.2.3 创建类模板的实例617
    18.2.4 类模板的静态成员625
    18.2.5 非类型的类模板参数625
    18.2.6 非类型参数示例626
    18.2.7 默认的模板参数值636
    18.3 模板的显式实例化636
    18.4 类模板的友元637
    18.5 特殊情形638
    18.6 带有嵌套类的类模板640
    18.7 更高级的类模板648
    18.8 本章小结649
    18.9 练习649
    第19章 输入输出操作651
    19.1 c++中的输入输出651
    19.1.1 理解流651
    19.1.2 使用流的优点652
    19.2 流类653
    19.2.1 标准流654
    19.2.2 流的插入和提取操作655
    19.2.3 流操纵程序657
    19.3 文件流659
    19.3.1 写入文件659
    19.3.2 读取文件662
    19.3.3 设置文件打开模式664
    19.4 未格式化的流操作672
    19.4.1 未格式化的流输入函数673
    19.4.2 未格式化的流输出函数674
    19.5 流输入输出中的错误675
    19.6 使用二进制模式流操作677
    19.7 对流的读写操作685
    19.8 字符串流692
    19.9 对象和流693
    19.9.1 重载类对象的插入运算符693
    19.9.2 重载类对象的提取运算符696
    19.9.3 流中更复杂的对象698
    19.10 本章小结710
    19.11 练习710
    第20章 标准模板库711
    20.1 stl架构简介711
    20.1.1 stl组件711
    20.1.2 stl头文件716
    20.2 使用vector容器717
    20.2.1 创建vector容器717
    20.2.2 访问vector容器中的元素720
    20.2.3 vector容器的基本操作722
    20.2.4 使用vector容器进行数组操作726
    20.2.5 使用输入流迭代器730
    20.3 创建自己的迭代器734
    20.3.1 给算法传送迭代器736
    20.3.2 stl迭代器类型的要求738
    20.3.3 stl迭代器成员函数的要求740
    20.3.4 插入迭代器744
    20.4 list容器745
    20.4.1 创建list容器746
    20.4.2 访问list容器中的元素747
    20.4.3 list容器上的操作747
    20.5 关联map容器753
    20.6 性能和规范761
    20.7 本章小结763
    20.8 练习763
    附录a ascii码764
    附录b c++关键字768
    附录c 标准库头文件769
    附录d 运算符的优先级和相关性774
    附录e 理解二进制和十六进制数777
    附录f 项目示例783

    商品评论(0条)

    暂无评论!

    您的浏览历史

    loading 内容加载中,请稍后...