Master C++ Programming with Free Open-Source Books
The Boost C++ LibrariesBy Boris Schäling (570 pages) The Boost C++ libraries are regarded as important and influential in the C++ world. These portable libraries provide support for tasks and structures such as multithreading, containers, string and text processing, iterators, linear algebra, pseudo-random number generation, template metaprogramming, concurrent programming, data structures, image processing, regular expressions, and unit testing. Boost works on almost any modern operating system, including Linux and Windows variants, and supports most modern compilers. This book introduces 72 Boost libraries that provide a wide range of useful capabilities. They help programmers manage memory and process strings more easily. The libraries provide containers and other data structures that extend the standard library. They make it easy to build platform-independent network applications. This is a gem to add to any collection. The 430 code examples illustrate the libraries’ capabilities well. Chapters examine memory management, string handling, containers, data structures, algorithms, communication, streams and files, and time. Later chapters proceed to explore functional, parallel and generic programming. The book closes with masterly coverage on language extensions, error and number handling, application libraries, design patterns, and other libraries. Boost C++ Libraries is released under the Creative Commons Attribution – NonCommercial – NoDerivatives 4.0 International License. There is a print version to buy on Amazon if you like to carry books around. Electronic version are also available to purchase in Kindle, E-book, and PDF formats. |
|
C++ AnnotationsBy Frank B. Brokken (1029 pages) The C++ Annotations offers an extensive tutorial about the C++ programming language. It can be used as a textbook for C++ programming courses. The C++ Annotations is intended for knowledgeable users of C or a language that uses a C-like grammar. Chapters include:
The book is available in HTML, PDF, PostScript, and plain text. It’s freely distributable, and published under the terms of the GNU General Public License. |
|
Introduction to Design Patterns in C++ with Qt 4, AnBy Alan Ezust, Paul Ezust (656 pages) This book starts with an introduction to the basic C++ elements, OO concepts, UML, and the core Qt classes. It moves on to higher-level programming ideas, Qt modules, and design patterns. The final part of the book examines important C++ features with rigour. There is good coverage on functions, inheritance and polymorphism. The book is designed to be used in a university class, and assumes no C or C++ programming experience. It includes Qt examples, exercises, solutions, and lecture slides for instructors. This book is part of Bruce Perens’ Open Source Series. All books in this series are released under the Open Publication License, v1.0 or later. |
|
How to Think Like a Computer Scientist: C++By Allen B. Downey (191 pages) How To Think Like A Computer Scientist C++ version is a concise and gentle introduction to software design using the C++ programming language. Intended for would-be developers with no programming experience, this book starts with the most basic concepts and gradually adds new material at a pace that is comfortable to the reader. This book providing a wealth of information on:
How to Think Like a Computer Scientist: C++ Version is a free textbook available under the Creative Commons Attribution-NonCommercial 3.0 Unported License. |
|
C++ GUI Programming with Qt 3By Jasmin Blanchette, Mark Summerfield (464 pages) The latest stable release of Qt is version 5.8. This book teaches the reader how to write GUI programs using Qt 3, the last version of Qt 3 was released in 2004. But there is a lot of the book which still makes sense for Qt 4 and Qt 5. C++ GUI Programming with Qt 3 assumes the reader has a rudimentary understanding of C++; this isn’t a book intended for a beginner. The book introduces the reader to all the concepts and practices to program GUI applications using Qt. Central topics are given a thorough treatment, and there is some specialized and advanced material. This book is part of Bruce Perens’ Open Source Series. All books in this series are released under the Open Publication License, v1.0 or later. |
|
Open Data Structures (in C++)
|
|
Cross-Platform GUI Programming with wxWidgetsBy Julian Smart and Kevin Hock with Stefan CsomorBrifll (744 pages) wxWidgets is a popular C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. It supports a wide range of graphical libraries. Following a brief introduction and getting started, the book’s chapters cover:
This book is part of Bruce Perens’ Open Source Series. All books in this series are released under the Open Publication License, v1.0 or later. |
|
The Rook’s Guide to C++By Jeremy Hansen (160 pages) Chapters cover variables, literals and constants, output, input, data types and conversion, conditionals (if, else and else if, switch statements), strings, loops, arrays, blocks, functions and scope. Later chapters examine problem solving and troubleshooting, the preprocessor, advanced arithmetic, file I/O, pointers, dynamic data, classes and abstraction, separation compilation and STL. Most of the book was written during a hackathon weekend by 25 Norwich University students. Certainly not flawless, but a good general text. It is released under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. The book is also available in print from Amazon. |
|
An Introduction to GCCBy Brian Gough (144 pages) An Introduction to GCC provides an introduction to the GNU C and C++ Compilers, gcc and g++, which are part of the GNU Compiler Collection (GCC). This book explains how to use the compiler itself. Based on years of observation of questions posted on mailing lists, it guides the reader straight to the important options of GCC. Chapters:
This book is published under the GNU Free Documentation License. |
There are other C++ books to download for free, but which are not released under an open source license, or where the author does not specify a license. Notable books include:
Thinking in C++, 2nd edition, Volume One & Two – Bruce Eckel (and additionally Chuck Allison for Volume Two)
C++ In Action:Industrial Strength Programming – by Bartosz Milewski
And finally, my recommendation for a budding C++ programmer has to be Programming — Principles and Practice Using C++ (Second Edition). Widely regarded as the finest introductory text, written by the inventor of C++. Worth every penny.
PROGRAMMING LANGUAGE PROFILES |
A great selection, thank you so much! Just a minor bug: the link to “Open Data Structures” leads to some other tutorial. Should it be http://opendatastructures.org instead?
Thanks for letting me know. The bug has been fixed!
What are the dates of the updates of those books? are they covering some modern C++ stuff? C++11/14? etc? I worry that not…
I’ll leave that as an exercise for the reader to look up. Enjoy!
Thanks for the great collections
Thanks a lot, dude! Actually I’m a senior year student, and I want to improve my skills using C++ (I’ve used C#,Python,Java and PHP) so this would be helpful!
Much obliged, fella! Really I’m a senior year understudy, and I need to enhance my abilities utilizing C++ (I’ve utilized C#,Python,Java and PHP) so this would be useful!