登录 注册
当前位置:主页 > 资源下载 > 17 > Absolute C++中文版(原书第2版)-完美的C++教程,文档中还包含英文版下载

Absolute C++中文版(原书第2版)-完美的C++教程,文档中还包含英文版下载

  • 更新:2024-06-10 15:23:20
  • 大小:49.78MB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:C++ - 后端
  • 格式:RAR

资源介绍

本书是讲解c++语言程序设计的优秀教程。全书围绕c++语言的结构来组织,开始章节介绍编程的普通概念,接下来详细介绍C++hh的继承、多态、异常处理以及标准模板库(STL),同时还包含模式和uML的介绍。本书内容系统、全面,给出了大量代码示例、自测练习、编程提示和编程练习,并且提供了练习的解答。本书有利于初学者尽快掌握c++的编程知识,养成良好的编程习惯;具备相当编程经验的人,也可以从本书了解到使用c++的更有效的方法。 译者序 前言 第1章  C++基础 1 1.1  C++简介 1 1.1.1  C++语言的起源 1 1.1.2  C++与面向对象的程序设计 1 1.1.3  C++的特点 2 1.1.4  C++术语 2 1.1.5  C++程序示例 2 1.2  变量、表达式及赋值语句 4 1.2.1  标识符 4 1.2.2  变量 5 1.2.3  赋值语句 6 1.2.4  更多赋值语句 8 1.2.5  赋值兼容性 9 1.2.6  字面常量 10 1.2.7  转义序列 11 1.2.8  命名常量 12 1.2.9  算术操作符和表达式 13 1.2.10  整数和浮点数除法 14 1.2.11  类型转换 15 1.2.12  自增和自减操作符 16 1.3  控制台输入/输出 19 1.3.1  使用cout输出  19 1.3.2  输出时换行 20 1.3.3  格式化带小数点的数字 21 1.3.4  用cerr输出 22 1.3.5  用cin输入 22 1.4  程序的风格 23 1.5  库与命名空间 24 1.5.1  库与include命令 24 1.5.2  命名空间 25 第2章  流程控制 30 2.1  布尔表达式 30 2.1.1  创建布尔表达式 30 2.1.2  布尔表达式求值 31 2.1.3  优先级原则 33 2.2  分支机制 37 2.2.1  if-else语句 37 2.2.2  复合语句 38 2.2.3  省略else 40 2.2.4  嵌套语句 40 2.2.5  多分支if-else语句 41 2.2.6  switch语句 42 2.2.7  枚举类型 44 2.2.8  条件操作符 44 2.3  循环 45 2.3.1  while和do-while语句 45 2.3.2  再谈增量、减量操作符 47 2.3.3  逗号操作符 49 2.3.4  for语句 50 2.3.5  break与continue语句 55 2.3.6  嵌套循环 57 第3章  函数基础 63 3.1  预定义函数 63 3.1.1  返回值的预定义函数 63 3.1.2  预定义的void函数 66 3.1.3  随机数生成器 68 3.2  程序员定义的函数 71 3.2.1  定义返回值的函数 71 3.2.2  函数声明的替代形式 73 3.2.3  调用函数的函数 73 3.2.4  返回布尔值的函数 75 3.2.5  定义void函数 76 3.2.6  void函数中的return语句 77 3.2.7  前提条件和执行结果 78 3.2.8  main函数 79 3.2.9  递归函数 79 3.3  作用域规则 80 3.3.1  局部变量 80 3.3.2  过程抽象 82 3.3.3  全局常量与全局变量 83 3.3.4  语句块 84 3.3.5  嵌套作用域 85 3.3.6  for循环中声明的变量 85 第4章  参数与重载 92 4.1  参数 92 4.1.1  传值调用参数 92 4.1.2  引用调用参数初步 94 4.1.3  引用调用机制详解 95 4.1.4  常量引用参数 97 4.1.5  混合参数列表 99 4.2  重载与默认实参 104 4.2.1  重载简介 104 4.2.2  分辨重载的准则 107 4.2.3  默认实参 109 4.3  测试及调试函数 111 4.3.1  assert宏 111 4.3.2  占位程序和驱动程序 112 第5章  数组 119 5.1  数组简介 119 5.1.1  数组的声明和引用 119 5.1.2  内存中的数组 122 5.1.3  数组的初始化 124 5.2  函数中的数组 125 5.2.1  作为函数实参的索引变量 125 5.2.2  整个数组作为函数实参 126 5.2.3  const参数修饰词 129 5.2.4  返回一个数组的函数 130 5.3  用数组编程 134 5.4  多维数组 141 5.4.1  多维数组基础 141 5.4.2  多维数组参数 142 第6章  结构和类 155 6.1  结构 155 6.1.1  结构类型 156 6.1.2  结构作为函数参数 159 6.1.3  结构的初始化 162 6.2  类 163 6.2.1  定义类和成员函数 163 6.2.2  封装 168 6.2.3  公有和私有成员 168 6.2.4  取值和赋值函数 171 6.2.5  结构和类 174 第7章  构造函数及其他工具 179 7.1  构造函数 179 7.1.1  构造函数的定义 179 7.1.2  构造函数的显式调用 183 7.1.3  类类型成员变量 190 7.2  其他工具 193 7.2.1  const参数修饰词 193 7.2.2  内联函数 198 7.2.3  静态成员 199 7.2.4  嵌套类和局部类定义 201 7.3  向量—标准模板库预览 202 7.3.1  向量基础 202 7.3.2  效率问题 205 第8章  操作符重载、友元和引用 210 8.1 基本操作符重载 210 8.1.1  重载基础 210 8.1.2  返回常量类型 215 8.1.3  重载一元操作符 218 8.1.4  作为成员函数的操作符重载 218 8.1.5  重载函数调用符 220 8.2  友元函数和自动类型转换 221 8.2.1  构造函数的自动类型转换 221 8.2.2  友元函数 222 8.2.3  友元类 225 8.3  引用和其他操作符重载 226 8.3.1  引用 226 8.3.2  重载“《”和“》” 228 8.3.3  赋值操作符 234 8.3.4  重载自增和自减操作符 235 8.3.5  重载数组操作符[] 237 8.3.6  基于左值和右值的重载 238 第9章  字符串 243 9.1  数组类型的字符串 243 9.1.1  C字符串值和C字符串变量 243 9.1.2 cstring 库中的其他函数 247 9.1.3  C字符串的输入和输出 250 9.2  字符操作工具 252 9.2.1  字符输入/输出 252 9.2.2  成员函数get和put 252 9.2.3  成员函数putback、peek和ignore 257 9.2.4  字符操作函数 258 9.3  标准string类 261 9.3.1  标准类string简介 261 9.3.2  string类的输入/输出 263 9.3.3  使用string类进行字符串处理 267 9.3.4  string类对象和C字符串的相互转换 273 第10章  指针和动态数组 280 10.1  指针 280 10.1.1  指针变量 280 10.1.2  内存管理基础 287 10.1.3  动态变量和自动变量 289 10.1.4  指针的应用 292 10.2  动态数组 292 10.2.1  数组变量和指针变量  292 10.2.2  创建和使用动态数组 294 10.2.3  指针运算 298 10.2.4  多维动态数组 299 10.3  类、指针和动态数组 300 10.3.1  ->操作符 301 10.3.2  this指针 301 10.3.3  重载赋值操作符 302 10.3.4  析构函数 309 10.3.5  复制构造函数 310 第11章  分散编译和命名空间 318 11.1  分散编译 318 11.1.1  封装回顾  318 11.1.2  头文件和实现文件 319 11.1.3  使用#ifndef 326 11.2  命名空间 329 11.2.1 命名空间和using命令 329 11.2.2 创建一个命名空间 330 11.2.3 using声明 333 11.2.4 限定名字 334 11.2.5 未命名的命名空间 337 11.2.6  嵌套命名空间 342 第12章  流和文件I/O操作 349 12.1  I/O流 349 12.1.1  文件I/O 350 12.1.2  向文件中添加内容 353 12.1.3  字符I/O 357 12.1.4  文件末尾检查 357 12.2  流I/O的工具 361 12.2.1  文件名作为输入 361 12.2.2  使用流函数对输出格式化 361 12.2.3  操作算子 364 12.2.4  保存设定的标记 365 12.2.5  其他的输出流成员函数 365 12.3  流的层次:继承的简要介绍 370 12.4  随机文件存取 375 第13章  递归 384 13.1  递归void函数 384 13.1.1  一个递归调用的跟踪 386 13.1.2  递归的进一步认识 388 13.1.3  递归调用的栈 391 13.1.4  递归与迭代的比较 392 13.2  有返回值的递归函数 393 13.3  按递归方式思考问题 397 13.3.1  递归设计技术 397 13.3.2  二分查找 398 13.3.3  编码 400 13.3.4  检查递归的正确性 402 13.3.5  效率 402 第14章  继承 410 14.1  继承基础 410 14.1.1  派生类 410 14.1.2  派生类的构造函数 417 14.1.3  protected限定词 420 14.1.4  成员函数的重定义 422 14.1.5  重定义与重载 423 14.1.6  访问重定义函数的基类版本 424 14.1.7  不可继承的函数 425 14.2  使用继承进行编程 426 14.2.1  派生类中的赋值操作符和复制 构造函数 426 14.2.2  派生类的析构函数 426 14.2.3  保护继承和私有继承 436 14.2.4  多继承 437 第15章  多态与虚函数 442 15.1  虚函数基础 442 15.1.1  后绑定 442 15.1.2  C++中的虚函数 443 15.1.3  抽象类和纯虚函数 448 15.2  指针和虚函数  451 15.2.1  虚函数和扩展类型兼容性  451 15.2.2  向下转换和向上转换 456 15.2.3  C++如何实现虚函数 457 第16章  模板 461 16.1  函数模板 461 16.2  类模板 471 16.2.1  类模板的语法 471 16.2.2  C++中的模板类vector和 basic_string 478 16.3  模板和继承 478 第17章  链式数据结构 487 17.1  节点和链表 487 17.1.1  节点 487 17.1.2  链表 491 17.1.3  向链表头插入一个节点 492 17.1.4  向链表中插入或移除节点 495 17.1.5  搜索链表 498 17.2  链表的应用 504 17.3  迭代器 514 17.3.1  指针作为迭代器 514 17.3.2  迭代器类 515 17.4  树 520 第18章  异常处理 535 18.1  异常处理基础 535 18.1.1  异常处理的一个样例 535 18.1.2  自定义异常类 542 18.1.3  多重抛出和捕获 543 18.1.4  在函数中抛出异常 546 18.1.5  异常说明 547 18.2  异常处理的编程技术 549 18.2.1  抛出异常的时机 549 18.2.2  异常类的层次结构 552 18.2.3  测试可用内存 552 18.2.4  再次抛出异常 552 第19章  标准模板库 555 19.1  迭代器 555 19.1.1  迭代器基础 556 19.1.2  迭代器的种类 559 19.1.3  常量迭代器和可变迭代器 562 19.1.4  反向迭代器 563 19.1.5  其他几种迭代器 565 19.2  容器 566 19.2.1  连续容器  566 19.2.2  容器适配器栈和队列 570 19.2.3  关联容器集合和映射 572 19.2.4  效率 575 19.3  泛型算法 576 19.3.1  运行时间和大O记法 576 19.3.2  容器访问运行时间 580 19.3.3  不改变序列的算法 580 19.3.4  改变序列的算法 583 19.3.5  集合算法 584 19.3.6  排序算法 585 第20章  模式和UML 592 20.1  模式 592 20.1.1  适配器模式 592 20.1.2  模型-视图-控制器模式 593 20.1.3  排序模式的效率 598 20.1.4  模式形式体系 599 20.2  UML 600 20.2.1  UML的历史 600 20.2.2  UML的类图表 600 20.2.3  类的相互作用 601 附录1  C++关键字 605 附录2  操作符优先级 606 附录3  ASCII字符集 608 附录4  一些库函数 609 附录5  旧的和新的头文件 614 参考资料 615