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 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 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 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
Last Updated Saturday, March 16 2013 @ 07:16 PM EST |