专栏名称: Linux爱好者
伯乐在线旗下账号,「Linux爱好者」专注分享 Linux/Unix 相关内容,包括:工具资源、使用技巧、课程书籍等。
目录
相关文章推荐
Linux爱好者  ·  湖南大学的 DeepSeek ... ·  2 天前  
Linux就该这么学  ·  又一个时代的眼泪,运营 22 ... ·  昨天  
Linux就该这么学  ·  9 点必须走人,消息称大疆开始严禁过度加班 ·  昨天  
Linux爱好者  ·  Bram 去世之后 Vim 的维护 : ... ·  3 天前  
Linux就该这么学  ·  Samba 4.22 更新:Linux 与 ... ·  3 天前  
51好读  ›  专栏  ›  Linux爱好者

通过这 9 本开源书,学好 C++

Linux爱好者  · 公众号  · linux  · 2017-05-09 22:19

正文

(点击 上方蓝字 ,快速关注我们)


编译: 伯乐在线/李大萌, 英文:St eve Emms

如有好 的文章 投稿,请点击 → 这里查看详情


书籍非常具有个人主观性,编程类的书籍也不例外。但是不管书籍的风格,重点或者节奏如何,好的 C++ 编程书能带读者开启一段引人入胜的旅程,拓展 C++ 语言的能力,向读者展示如何使用C++来构建各种东西。

我精心挑选了一些 C++ 的书籍,这些书都非常值得一读。 我推荐的这 9 本书都是根据公共版权许可发行的书籍 。在此之前,我先简要介绍一下 C++。

C++ 是由 Bjarne Stroustrup 设计的,在1983年发布了第一个版本。它是一门静态类型,通用的,可移植编程语言,形式自由,多范式,需要编译。也因为它结合了高级(high-level)和低级(low-level)的语言特征,被认为是一种中级语言。C++ 专为系统和应用程序编程而设计,它对 C 语言进行了扩展,自增操作符记为 ++,因此叫 C++。


C++ 一直是一门备受欢迎编程语言。例如,它被大量地用于嵌入式系统、银行和电信领域。它是 C 语言的超集,保留了 C 语言的效率和便利的符号标记,同时提供更强大的类型检查,多继承,数据抽象,异常处理,运算符重载,泛型编程和面向对象编程的功能。C++ 对许多其他语言产生了影响,包括 C#、Java 以及 C 语言的发展。

《Boost C++ 类库》(The Boost C++ Libraries)

作者 Boris Schäling,570 页

Boost C++库在C++世界中有非常重要的影响力。这些便携式的库为诸多任务和结构提供了支持,包括多线程,容器,字符串和文本处理,迭代器,线性代数,伪随机数生成,元程序设计模板,并发程序设计,数据结构,图像处理,正则表达式和单元测试等。 Boost几乎可以用于任何现代操作系统,包括Linux和Windows的衍生版本,同时也支持大多数现代编译器。

本书介绍了72个非常实用的Boost库,这些库涵盖的范围非常广,可以帮助程序员更容易地管理内存和处理字符串。这些库还提供了扩展标准库的多种容器和其他数据结构,使用这些库可以轻松地构建独立于平台的网络应用程序。

本书是值得添加到各类收藏的好东西。书里的430个代码示例很好地阐明了这些库的功能。

书中章节对内存管理,字符串处理,容器,数据结构,算法,通信,流和文件以及时间等问题进行了研究。稍后的章节继续探讨了函数,并行性和泛型编程问题。在结尾覆盖了大量有关语言扩展,错误信息以及数字处理,应用程序库,设计模式和其他库等内容。

Boost C++库是根据Creative Commons Attribution – NonCommercial – NoDerivatives 4.0国际许可证发布的。如果您喜欢随身携带书籍,可以在Amazon上购买纸质版。电子版也可以在kindle上购买,电子书和PDF格式都可以。

《C++注解》(C++ Annotations)

作者 Frank B. Brokken,1029 页

本书提供了有关C++编程语言的全方位教程,可以用作C ++编程课程的教科书。它适用于熟悉C语言或者类似C语言语法的用户。

包括以下章节:

  • 命名空间

  • 字符串——C语言提供了基本的字符串支持

  • I/O字节流——提供了基于类概念的输入/输出(I / O)库

  • 类——C针对不同类型数据结构提供了两种方法。 C结构体保存各种类型的数据成员,C联合体也定义了各种类型的数据成员。本章介绍了另外一种结构——类,与结构体不同的是,类成员默认是私有的

  • 静态数据和函数

  • 内存管理——用C++语言描述内存分配的运算符

  • 异常——允许C++程序执行受控的非本地返回命令,弥补了非局部跳转(longjmp)和设置局部跳转(setjmp)函数的缺点

  • 运算符重载——通用的运算符重载

  • 抽象容器

  • 继承——派生的另一个术语。本章演示了基类指针可能用于指向派生类对象

  • 多态——继承的一种特殊形态

  • 友元——介绍friend关键字及其使用原则

  • 成员指针——定义指向成员的指针及其使用,静态成员指针和指针长度

  • 嵌套类——在嵌套类与其外围类具有紧密概念关系的情况下使用

  • 标准模板库(STL)——由容器,通用算法,迭代器,函数对象,分配器,适配器和数据结构组成的通用库。这些算法使用的数据结构是抽象的,可以与(实际上)任何数据类型一起使用

  • 泛型算法——涵盖STL的通用算法

  • 函数模板——探讨模板的句法特性。介绍了模板类型参数,模板非类型参数和函数模板的概念,并提供了多个模板示例

  • 类模板——讨论构建和使用类模板

  • 高级模板使用——简要介绍模板元编程的主要特征和与模板相关的细微之处

这本书有HTML,PDF,PostScript和Txt格式。它可以自由分发,并根据GNU通用公共许可证的条款发布。

《通过Qt4 介绍C++中的设计模式》(Introduction to Design Patterns in C++ with Qt 4, An)

作者 艾伦·尤斯特(Paul Ezust), 656页

本书首先介绍C++基本组成,面向对象的概念,UML(统一建模语言)和核心Qt类。进而转向更高层次的编程思想,Qt模型和设计模式。最后一部分严谨地印证了C++的重要特性,完整地覆盖了函数,继承和多态性方面的内容。

该书旨在用于大学课程,面向没有C或C ++编程经验的读者,还为教学工作者提供了Qt示例,练习,解决方案和授课幻灯片。

这本书是Bruce Perens开源系列的一部分。 本系列的所有图书均以Open Publication License V1.0或更新版本发布。

《如何像计算机科学家一样思考(C++篇)》(How to Think Like a Computer Scientist: C++)

作者Allen B. Downey,191页

《如何像计算机科学家一样思考》C++版本是一本简洁文雅的介绍如何使用C++编程语言进行软件设计的书。本书从最基本的概念开始,以阅读者容易接受的速度逐渐增添新内容,旨在把没有编程经验的读者培养成未来的开发人员。

本书的主要内容:

  • 变量,表达式和语句

  • 函数

  • 条件和递归

  • 丰富的函数

  • 迭代

  • 字符串

  • 向量

  • 成员函数

  • 对象向量

  • 向量对象

  • 类和不变量

  • 文件输入/输出和apMatrixes

本书是一本免费的C++版教科书,根据Creative Commons Attribution-NonCommercial 3.0 未本地化协议发布。

《基于Qt3的C++ 图形界面编程》(C++ GUI Programming with Qt 3)

作者 Jasmin Blanchette,Mark Summerfield,464页

Qt的最新稳定版本是5.8。 本书指导读者如何使用Qt 3编写图形界面程序,Qt 3最近一个版本的是在2004年发布,但是有很多这本书对于Qt 4和Qt 5用户来说仍然是有意义的。

本书需要读者对C++有基本的了解,这不是一本面向初学者的书。

本书向读者介绍了使用Qt编写图形界面应用程序的所有概念和实践,对核心问题进行了详细周密的讲解,还提供一些专业前沿的学习资料。

这本书是Bruce Perens开源系列的一部分。本系列的所有图书均以Open Publication License V1.0或更新版本发布的。

《开放式数据结构( C++版)》(Open Data Structures (in C++))

作者 Pat Morin,336页

本书讲授了基本的数据结构设计和分析及在C ++中的实现。它涵盖了序列(列表),队列,优先级队列,无序字典,有序字典以及图的数据结构的实现和分析。作者意图在于为计算机科学专业的学生提供一条研究数据结构的免费途径。但是本书不是一本介绍C++编程语言或C++标准模板库的书,但是它有助于程序员了解STL数据结构如何实现以及为什么这些实现是高效的。

书中章节涵盖了基于数组的列表,链表,分级链表,哈希表,二叉树(包括随机二叉搜索树,替罪羊树和红黑树)。稍后的章节介绍了堆,排序算法(基于比较,计数排序和基数排序),图,整型数据结构和外存搜索。

这本书是根据知识共享署名许可颁发的。我们可以免费阅读这本书的HTML,PDF版本,本书的LaTeX版本,Java / C ++ / Python源码可以从GitHub下载。还有平装版购买。本书已被翻译成斯洛文尼亚语和土耳其语。

《使用wxWidgets跨平台GUI编程》(Cross-Platform GUI Programming with wxWidgets)

作者 Julian Smart,Kevin Hock与Stefan CsomorBrifll,744页

wxWidgets是一个流行的C++库,它允许开发人员使用单一的代码库为Windows,Mac OS X,Linux和其他平台创建应用程序。它支持各种图形库。

本书的简要介绍和入门章节涵盖了以下内容:

  • 事件处理

  • 窗口基础

  • 绘图

  • 输入事件处理

  • 使用sizers窗口布局

  • 使用标准对话框

  • 创建自定义对话框

  • 图像编程

  • 剪贴板和拖放

  • 高级窗口类

  • 数据结构类

  • 文件和流

  • 内存管理,调试和错误检查

  • 编写国际化应用

  • 编写多线程应用程序

  • wxSocket编程

  • 处理文档和视图

  • 完善你的应用程序

这本书是Bruce Perens开源系列的一部分。本系列的所有图书均以Open Publication License V1.0或更新版本发布。

《Rook的C++指南》(The Rook’s Guide to C++)

作者 Jeremy Hansen,160页







请到「今天看啥」查看全文