Newbies What Next ? News Forums Calendar


News Sections
General News (3987/0)
Reviews (637/0)
Press Releases (465/0)
Distributions (197/0)
Software (915/0)
Hardware (537/0)
Security (192/0)
Tutorials (356/0)
Off Topic (181/0)

User Functions


Don't have an account yet? Sign up as a New User

There are no upcoming events

9 of the Best Free C++ Books - Part 1

9 of the Best Free C++ Books

C++ is a statically typed, free-form, multi-paradigm, portable, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it has a combination of both high-level and low-level language features. C++ was designed for systems and applications programming, extending the C programming language.

C++ continues to be one of the most popular programming languages. It is a superset of C that retains the efficiency and notational convenience of C, while providing facilities for stronger type checking, multiple inheritance, data abstraction, exception handling operator overloading, generic programming, and object-oriented programming.

The C++ Programming Language by Bjarne Stroustrup, the creator of C++, is widely regarded as the most trusted, definitive reference, and de facto standard book for C++. The book is worthy of the highest praise as it provides the most authoritative coverage of the C++ language. Whilst none of the books featured in this article could never replace that masterpiece, there is a good selection of books that teach C++ that are available to download without charge.

To cater for all tastes, we have selected a diverse selection of informative books for C++. All of the texts here come with our strongest recommendation. So get reading (and downloading).

1. Thinking in C++, 2nd edition, Volume 1

Thinking in C++, 2nd edition, Volume 1
Author Bruce Eckel
Format HTML, PDF
Pages 814

Thinking in C++, 2nd edition is a book for readers to master C++, laden with expert advice and written in a clear and knowledgeable style.

Eckel starts with a detailed look at objects, showing how C++ programs can be constructed from off-the-shelf object libraries. This edition includes a new, chapter-length overview of the C features that are used in C++

Chapters cover:

  • Introduction to Objects - introduces the reader to the basic concepts of object-oriented programming (OOP), including an overview of OOP development methods
  • Making & Using Objects - introduces enough C++ syntax and program construction concepts to allow you to write and run some simple object-oriented programs
  • The C in C++ - covers the basic syntax of C and C++ in detail. This chapter is a fairly fast coverage of C constructs and introduction to some basic C++ constructs
  • Data Abstraction - takes all the scattered components of a typical C library and encapsulates them into a structure (an abstract data type, called a class)
  • Hiding the Implementation - looks at the subject of boundaries in structures
  • Initialization & Cleanup - additional features that have been engineered into C++ that make the bugs in your program almost leap out and grab you
  • Function Overloading & Default Arguments - the theme of this chapter is convenient use of function names
  • Constants - the concept of constant (expressed by the const keyword) was created to allow the programmer to draw a line between what changes and what doesnít. This provides safety and control in a C++ programming project
  • Inline Functions - retains the efficiency of the preprocessor macro, but adds the safety and class scoping of true functions. This chapter looks at the problems of preprocessor macros in C++, how these problems are solved with inline functions, and guidelines and insights on the way inlines wor
  • Name Control - learn how static controls storage and visibility, and an improved way to control access to names via C++ís namespace feature. The reader also finds out how to use functions that were written and compiled in C
  • References & the Copy-Constructor - looks briefly at the differences between pointers in C and C++, then introduces references. The copy-constructor, a special constructor (requiring references) that makes a new object from an existing object of the same type. The copy-constructor is used by the compiler to pass and return objects by value into and out of functions.
  • Operator Overloading - overloadable operators: unary operators, binary operators, unusual operators, and more
  • Dynamic Object Creation - learn how C++ís new and delete elegantly solve this problem by safely creating objects on the heap
  • Inheritance & Composition - learn about code reuse mechanisms
  • Polymorphism & Virtual Functions - polymorphism (implemented in C++ with virtual functions) is the third essential feature of an object-oriented programming language, after data abstraction and inheritance
  • Introduction to Templates - the template feature in C++ provides a way to reuse source code

Every chapter contains many modular, to-the-point examples, plus exercises based on Eckel's extensive experience teaching C++ seminars.

Thinking in C++ was the 1995 Software Development Jolt Cola Award for best book of the year.

2. Thinking in C++, Volume 2

Thinking in C++, Volume 2
Author Bruce Eckel, Chuck Allison
Format HTML
Pages 832

Thinking in C++, Volume 2 looks at more advanced features, with an eye towards developing techniques and ideas that produce robust C++ programs.

  • Learn practical programming and best practices
  • Meet the difficult challenges of C++ development
  • Build reliable and robust programs
  • Design Patterns chapter shows sophisticated use of objects, composition and polymorphism
  • Provides a gentle introduction to multithreaded programming, a feature being considered for the next version of Standard C++
  • Defensive Programming chapter includes a simple unit-testing framework and debugging techniques
  • In-depth treatment of Standard C++ Library facilities including strings, iostreams, and the "STL" algorithms and containers
  • Modern usage of templates, including template metaprogramming.
  • Unravels the perplexities of multiple inheritance
  • Shows practical uses for RTTI
  • Explores exception handling in depth and clearly explains exception-safe design
  • Compliant with the official ISO C++ Standard
  • Presents results of current research being considered for inclusion in the next revision of Standard C++
  • All code examples freely downloadable, tested on multiple platforms and compilers including the free GNU C++ compiler on Windows/Mac/Linux

Thinking in C++, Volume 2 was the first edition winner 1996 Jolt award for best book of the year.

3. Microsoft Visual C++ 6 Unleashed

Visual C++ 6 Unleashed
Author Mickey Williams, David Bennett
Format HTML
Pages 1000

Visual C++ 6 Unleashed provides comprehensive coverage of the core topics for Visual C++ 6 programming.

This book skips the beginning level material and jumps right in to Visual C++. Topics include mastering the debugger, using and integrating HTML help, creating custom AppWizards, customizing the IDE with add-ins, writing multi-threaded MFC applications, developing NT services, using advanced UI techniques, and much more.

Chapters cover the following areas:

  • The Visual C++ 6.0 Environment - take a tour of all of the components that make up the Visual C++ Environment.
  • MFC Class Library Overview - develop a complete application with MFC AppWizard, examine the application architecture used by MFC, and see how MFC works behind the scenes to make your application run
  • MFC Message Handling Mechanism - shows the reader how to work with MFC to handle messages with C++ classes
  • The Document View Architecture - explore how you can use MFC to help you create application
  • Creating and Using Dialog Boxes - focuses on some of these advanced techniques to help you exploit the dialog box
  • Working with Device Contexts and GDI Objects
  • Creating and Using Property Sheets - understand and create property sheets
  • Working with the File System - ensures the reader can exploit the best file-system features and still maintain compatibility across the various platforms, by understanding the difference of old and new file systems and their implications on the behavior of file and device I/O functions
  • Using Serialization with File and Archive Objects
  • MFC and the Internet Service API - looks at the Internet Server (IS) Application Programming Interface (API), which you can use to create your own custom enhancements to ISAPI-compliant Hypertext Transfer Protocol (HTTP) servers
  • The WinInet API - Visual C++ 6.0 includes the Windows Internet Extensions API, known as WinInet
  • MFC HTML Support - understand dynamic HTML, using the Win32 WebBrowser ActiveX Control, the CHtmlView class, and using MFC and Dynamic HTML
  • Using the Standard C++ Library - a collection of common data structures. The STL consists of a common set of generic data structures, called containers. Also included in the STL are algorithms, which are applied to the containers to process their data. To connect algorithms with containers, iterators are used. Each of these topics is covered in more depth throughout the chapter.
  • Error Detection and Exception Handling Techniques - examines the basic concepts behind structured exception handling and its use. It also looks at the basic concepts that will be the building blocks for C++ exception handling and MFC exception handling
  • Debugging and Profiling Strategies - look at debugging and profiling strategies
  • Multithreading - see how you can create your own multithreaded applications with MFC
  • Using Scripting and Other Tools to Automate the Visual C++ IDE - Developer Studio is an open environment that you can customize to meet your own development needs
  • Creating Custom AppWizards - create your own custom AppWizards with the Custom AppWizard Application Wizard
  • Database Overview - gives an overview of the database interfaces available with Visual C++ 6 including OLE DB, the MFC database classes, Open Database Connectivity, and ActiveX data objects
  • ODBC Programming - the Open Database Connectivity (ODBC) library is provided with Visual C++ to allow your applications to connect to a wide variety of different databases
  • MFC Database Classes - explore the three main classes MFC provides for database access: CDatabase (manages a connection to a datasource), CRecordset (manages a set of rows returned from the database), and CRecordView (simplifies the display of data from CRecordset objects)
  • Using OLE DB - intended to replace the older Data Access Objects (DAO) and Remote Data Objects (RDO) APIs
  • Programming with ADO - takes a look at ActiveX Data Objects, or ADO, Microsoft's object-oriented interface to OLE DB data sources
  • Overview of COM and Active Technologies - discusses COM, OLE, and Active Technologies
  • Active Documents - Component Object Model (COM) software components that present data and information to the user
  • Active Containers - these containers are the environment through which the end user controls and manipulates the appearance of data
  • Active Servers - takes an in-depth look at the different types of COM, OLE, and Active servers, including embeddable servers and Automation servers
  • ActiveX Controls - discusses ActiveX controls. ActiveX controls are an evolved form of object linking and embedding (OLE) controls
  • ATL Architecture - discusses the major components of the ATL architecture
  • Creating COM Objects Using ATL - learn how to use the Interface Definition Language (IDL) to define interfaces that go beyond the basic types supported by IDispatch. Examine how structures, enumerations, and unions can be passed over COM interfaces. See an example of a COM client and server that pass structures and enumerations through a custom interface
  • Creating ActiveX Controls Using ATL - learn how to use the Active Template Library (ATL) to create ActiveX controls that are lightweight, have few dependencies, and are safely usable by scripting clients
  • Using ATL to Create MTS and COM+ Components - discusses how you can use the Active Template Library (ATL) to build components that can be used with Microsoft Transaction Server (MTS) and COM+

Next Section: 9 of the Best Free C++ Books - Part 2

This article is divided into three parts:

Part 1, Part 2, Part 3

Bookmark and Share

Last Updated Wednesday, July 08 2015 @ 04:36 PM EDT

We have written a range of guides highlighting excellent free books for popular programming languages. Check out the following guides: C, C++, C#, Java, JavaScript, CoffeeScript, HTML, Python, Ruby, Perl, Haskell, PHP, Lisp, R, Prolog, Scala, Scheme, Forth, SQL, Node.js (new), Fortran (new), Erlang (new), Pascal (new), and Ada (new).

Group Tests
100 Essential Apps
All Group Tests

Top Free Software
5 Office Suites
3 Lean Desktops
7 Document Processors
4 Distraction Free Tools
9 Project Management
4 Business Solutions
9 Groupware Apps
14 File Managers
10 Databases
21 Backup Tools
21 Productivity Tools
5 Note Taking Apps
9 Terminal Emulators
21 Financial Tools
5 Bitcoin Clients
21 Text Editors
21 Video Emulators
21 Home Emulators
42 Graphics Apps
6 CAD Apps
42 Scientific Apps
10 Web Browsers
42 Email Apps
12 Instant Messaging
10 IRC Clients
7 Twitter Clients
12 News Aggregators
11 VoIP Apps
42 Best Games
9 Steam Games
42 Audio Apps
5 Music Streaming
42 Video Apps
5 YouTube Tools
80 Security Apps
9 System Monitoring
8 Geometry Apps
Free Console Apps
14 Multimedia
4 Audio Grabbers
9 Internet Apps
3 HTTP Clients
5 File Managers
8 Compilers
9 IDEs
9 Debuggers
7 Revision Control Apps
6 Doc Generators
Free Web Software
21 Web CMS
14 Wiki Engines
8 Blog Apps
6 eCommerce Apps
5 Human Resource Apps
10 ERP
10 CRM
6 Data Warehouse Apps
8 Business Intelligence
6 Point-of-Sale

Other Articles
Migrating from Windows
Back up your data
20 Free Linux Books
24 Beginner Books
12 Shell Scripting Books

Older Stories
Saturday 05/16
  • 9 First Steps with Ubuntu 15.04 (0)
  • Excellent Console Log File Analyzers (0)

  • Monday 05/04
  • 100 Essential Free Apps (0)

  • Saturday 04/25
  • What are good command line HTTP clients? (0)

  • Sunday 04/12
  • First Peek at XBian on the Raspberry Pi 2 (0)

  • Saturday 04/04
  • First Look at OSMC RC on the Raspberry Pi 2 (0)

  • Sunday 03/29
  • First Steps with OpenELEC on the Raspberry Pi 2 (0)
  • Ubuntu MATE 15.04 for Raspberry Pi 2 (0)

  • Monday 03/16
  • MIPS Creator CI20 v Raspberry Pi 2 (0)
  • Raspberry Pi 2: Raspbian (ARMv6) v Linaro (ARMv7) (0)

  • Vote

    What Linux distribution do you run on your main computer?

    989 votes | 3 comments

    Built with GeekLog and phpBB
    Comments to the webmaster are welcome
    Copyright 2009 - All rights reserved