设为首页收藏本站language 语言切换
查看: 941|回复: 1
收起左侧

C++ 高效编程不得不看的九本开源书籍

[复制链接]
发表于 2017-3-12 22:17:35 | 显示全部楼层 |阅读模式

导读
书籍是非常主观和私人的财产,编程书籍也不例外。但是不管 C++ 编程书籍的风格、关注点或者节奏如何,好书总可以带领读者走过一段引人入胜的旅程,揭示编程语言的能力,还能向读者描绘如何使用编程语言来实现各种事物。
分享是一种美德,我精心挑选了九本值得一读的优质 C++ 书籍,这些书籍均基于开源协议发布。在这之前,我会给出一份 C++ 的简短介绍。
C++ 是由 Bjarne Stroustrup 设计,初次发布于 1983 年。它是一种静态类型、格式自由、多重范式、可移植、编译式的通用编程语言。它被认为是中级语言,同时包含有高级与初级编程语言的特性。C++ 设计用于实现系统级与应用的编程,它拓展了 C 编程语言,因此其名字中的使用了自增运算符 ++。
C++ 仍是一种流行的编程语言。例如,它被广泛应用于嵌入式系统、银行以及通讯业。它作为 C 的超集保留了 C 标志性的简洁与高效,同时提供强类型检查、多重继承、数据抽象、异常处理操作符重载、泛型编程,以及面向对象编程等功能。C++ 不仅影响了 C 语言的发展,同时也影响到了包括 C#、Java 在内的许多其他编程语言。
《Boost C++ 类库(The Boost C++ Libraries)》

                               
登录/注册后可看大图

作者 Boris Schäling (570页)
《Boost C++ 类库(The Boost C++ Libraries)》被认为在 C++ 世界中极其重要并有深远影响。书中这些可移植的库提供对多种任务和结构体的支持,包括多线程、容器、字符串和文本处理、迭代器、线性代数、伪随机数产生、元程序设计模板、并发程序设计、数据结构、图像处理、正则表达式和单元测试。Boost 可以在几乎所有现代操作系统上工作,包括 Linux 和 Windows 及其衍生,并且支持绝大多数现代编译器。
这本书介绍了 72 个 Boost 库,提供了广泛并且实用的功能。它们能够帮助程序员更轻松的管理内存和处理字符串。这些库提供多种容器以及其它数据结构来拓展标准库。使用这些库可以轻松实现平台无关的网络应用程序。
本书是一颗值得添加到各类收藏中的明珠。430 份源代码例子生动形象地阐释了这些库的功能。
本书前面的章节审视了内存管理、字符串处理、容器、数据结构、算法、通信、文件与流以及时间。后续章节进一步探索了函数式编程、并行编程和泛型编程。以对语言拓展、错误与数字处理、应用程序库、设计模式以及其他库的大部分内容。
本书采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。如果你喜欢实体书,可以在亚马逊上购买纸质书,也可选择如 kindle、E-book 和 PD F格式的电子书。
《C++ 注释(C++ Annotations)》

                               
登录/注册后可看大图

作者 Frank B. Brokken (1029页)
《C++ 注释(C++ Annotations)》提供了关于 C++ 编程语言的一份全面的教程。它可以被当做一门 C++ 课程的教材。本书面向已掌握 C 语言或其他类 C 语法知识的使用者。
本书主要章节有:
  • 命名空间
  • 字符串——C 提供的是最基础的字符串支持
  • I/O 流库——提供了一个基于类概念的输入/输出库
  • 类——C 提供了两种结构化不同类型数据的方法。C 语言的结构体包含多种类型的数据成员,而 C 语言的共用体(union)同样可以定义不同类型的数据成员。本章介绍的类,也是一种结构体但是它的内容对外部世界来说是默认不可访问的。
  • 静态数据和函数
  • 内存管理——审视 C++ 中能够操作内存分配的操作符
  • 异常——允许 C++ 程序执行受控的非本地返回命令,避免了使用 longjmp(非局部跳转)和 setjmp(激活非局部跳转)函数的缺陷。
  • 操作符重载——介绍通用的操作符重载
  • 抽象容器
  • 继承——派生的另外一个特性。 本章演示基类指针可能被用来指向派生类的对象。
  • 多态——继承的一种特殊形态
  • 友元机制——介绍 friend 关键词以及它的使用原则
  • 成员指针——定义成员指针及其用法,静态成员指针,指针长度
  • 嵌套类——当嵌套类与其外围类有概念上的紧密联系时会被使用
  • 标准模板库(STL)——包含容器、通用算法、迭代器、函数对象、分配器、适配器和数据结构的通用库。这些算法使用的数据结构都是抽象意义的,因此算法实际上可以使用任何数据类型。
  • 泛型算法——涵盖标准模板库中的泛型算法
  • 函数模板——探索模板独特的句法。介绍模板类型参数与模板非类型参数和函数模板等概念并且提供模板的多个案例。
  • 类模板——讨论构建与使用类模板
  • 进阶模板用法——一份简短的模板元编程主要特性与模板的微妙关系的介绍
本书有HTML、PDF、PostScript 和 txt 版本。它可以自由分发,基于 GNU GPL 协议发布。
《通过 C++ 和 Qt4 了解设计模式(An Introduction to Design Patterns in C++ with Qt 4)》

                               
登录/注册后可看大图

作者 Alan Ezust, Paul Ezust (656页)
《 通过 C++ 和 Qt4 了解设计模式(An Introduction to Design Patterns in C++ with Qt 4)》从介绍 C++ 基础知识、面向对象概念、UML(统一建模语言)和核心 Qt 类开始。进而转向更高级的编程概念如 Qt modules 和设计模式。最后严密地印证了重要的 C++ 特性。其中涵盖了非常优秀的对函数、继承和多态的讲解。
本书不需要具备任何 C 或者 C++ 编程经验前提,并且被设计为普适用途。它也为教学工作者准备了 Qt 案例、练习、答案以及课程 PPT。
本书是 Bruce Perens 开源系列中的一部分。所有在此系列中的书籍都是基于 Open Publication License V1.0 及其后版本发布的。
《像计算机科学家一样思考:C++(How to Think Like a Computer Scientist: C++)》

                               
登录/注册后可看大图

作者 Allen B. Downey (191页)
《 像计算机科学家一样思考:C++(How to Think Like a Computer Scientist: C++)》是使用 C++ 编程语言进行软件设计的一本简洁友好的介绍性书籍。本书的目的是通过讲解最基础的概念并且以读者容易接受的节奏逐步增加新内容来把没有编程经验的读者培养成为未来的开发者。
本书提供的有价值的内容包括:
  • 变量、表达式和语句
  • 函数
  • 条件语句与递归
  • 丰富的函数
  • 迭代
  • 字符串
  • 向量
  • 成员函数
  • 对象的向量
  • 向量的对象
  • 类与不变量
  • 文件输入输出和 apmatrixes
本书是一本在知识共享署名-非商业性使用-3.0 未本地化版本协议下发布的免费书籍。
《C++ Qt3 图形界面编程(C++ GUI Programming with Qt 3)》

                               
登录/注册后可看大图

作者 Jasmin Blanchette, Mark Summerfield (464 页)
最新发布的 Qt 稳定版本是 5.8,而《 C++ Qt3 图形界面编程(C++ GUI Programming with Qt 3)》指导读者如何使用 Qt3 编写 GUI 程序,Qt3 最近一次更新是 2004 年,但是本书仍然有大部分内容对 Qt4 和 Qt5 有效。
本书不是一本面向初学者的书,需要读者对 C++ 有基本的理解。
本书向读者介绍了使用 Qt 进行 GUI 应用编程所有的概念和需要的练习。本书不仅详尽的讲述了核心内容,而且也提供了一些特别的和高阶的学习材料。
本书是 Bruce Perens 开源系列中的一部分。所有在此系列中的书籍都是基于 Open Publication License V1.0及之后版本发布的。
《开放数据结构(C++ 版)(Open Data Structures (in C++))》

                               
登录/注册后可看大图

作者 Pat Morin (336页)
《 开放数据结构(C++ 版)(Open Data Structures (in C++))》教导读者设计和分析基础数据结构以及如何使用 C++ 实现。 它涵盖了对如下数据结构的分析和实现:序列(列表)、队列、优先队列、无序字典、有序字典以及图。作者的意图在于向大学计算机科学的学生提供一条学习数据结构的免费的途径,但是并不打算成为介绍 C++ 编程语言或者 C++ 标准模板库的一本书。不过它可以帮助程序员理解标准模板库的数据结构是如何实现的以及这种实现为何如此高效。
章节内容覆盖了基于数组的列表、链表、分级链表、哈希表、二叉树(又包含了随机二叉搜索树、替罪羊树、红黑树)。之后的章节还包括堆、排序算法(比较、计数和基数排序)、图、整数的数据结构和外部存储器搜索。
本书基于知识共享署名 协议发布。免费的 HTML、PDF 均已发布,本书的 LaTeX 版本,Java/C++/Python 源代码都可以从 GitHub 下载。也有纸质书版本可供购买。本书已被翻译为斯罗维尼亚语和土耳其语。
《使用 wxWidgets 进行跨平台 GUI 编程(Cross-Platform GUI Programming with wxWidgets)》

                               
登录/注册后可看大图

作者 Julian Smart,Kevin Hock和Stefan CsomorBrifll (744 页)
wxWidgets 是一个流行的 C++ 库,可供开发者使用单一的代码基础为 Windosw、Mac OS、Linux 和其他平台创建应用。它支持非常广泛的图形处理库。
这本书《 使用 wxWidgets 进行跨平台 GUI 编程(Cross-Platform GUI Programming with wxWidgets)》从简单的介绍和起步章节开始,主要内容包括:
  • 事件处理
  • 窗口基础
  • 画图
  • 输入事件处理
  • 使用 sizers 进行窗口布局
  • 使用标准对话框
  • 创建自定义对话框
  • 图像编程
  • 剪贴板与拖放动作
  • 高阶窗口类
  • 文件和数据流
  • 内存管理,调试和错误检查
  • 编写国际化应用
  • 编写多线程应用
  • wxSocket 编程
  • 处理文档和视图
  • 日臻完美你的应用
本书是 Bruce Perens 开源系列中的一部分。所有在此系列中的书籍都是基于 Open Publication License V1.0及其后版本发布的。
《Rook 的 C++ 指南(The Rook’s Guide to C++)》

                               
登录/注册后可看大图

作者 Jeremy Hansen (160页)
《 Rook 的 C++ 指南(The Rook’s Guide to C++)》的章节中包含变量、常量、输入输出、数据类型和转换、条件判断语句(if、else 和 else if
发表于 2017-3-13 11:05:22 | 显示全部楼层
感谢楼主分享!
沙发 2017-3-13 11:05:22 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-2 20:42 , Processed in 0.087965 second(s), 13 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表