This book covers the C++ programming language, its interactions with software design and real life use of the language. It is presented in a series of chapters as an introductory prior to advance courses but can also be used as a reference book. This is an open work; if you find any problems with terms or concepts you can help by contributing to it; your participation is needed and welcomed! You are also welcomed to state any preference, shortcomings, vision for the actual book content, structure or other conceptual matters; see this Wikibook's discussion page for the right forum for participating.

If you have questions related to C++ that are not addressed on the book, ask at the Q&A or check
Subject:C++ programming language

A complete printable version of
C++ Programming
is available.
(attention to its size)


A single page version edit) with all chapters is available (attention to its size).
  1. Introducing C++  
  2. Programming languages  
    1. Programming paradigms   - the versatility of C++ as a multi-paradigm language, concepts of object-oriented programming (objects and classes, inheritance, polymorphism).
  3. Comparisons   - to other languages, relation to other computer science constructs and idioms.
    1. with C  
    2. with Java  
    3. with C#  
    4. with Managed C++ (C++/CLI)  
    5. with D  
  1. The code   - includes list of recognized keywords.
    1. File organization  
    2. Statements  
    3. Coding style conventions  
    4. Documentation  
    5. Scope and namespaces  
  2. Compiler  
    1. Preprocessor   - includes the standard headers.
    2. Linker  
  3. Variables and storage   - locality, scope and visibility, including source examples.
    1. Type  
  4. Operators   - precedence order and composition, , assignment, sizeof, new, delete, [] (arrays), * (pointers) and & (references).
    1. Logical operators   - the && (and), || (or), and ! (not).
    2. Conditional operator   - the ?:
  5. Type casting   - Automatic, explicit and advanced type casts.
  6. Flow of control   - Conditionals (if, if-else, switch), loop iterations (while, do-while, for) and goto.
  7. Functions   - Introduction (including main), argument passing, returning values, recursive functions, pointers to functions and function overloading.
    1. Standard C Library   - I/O, string and character, math, time and date, memory and other standard C functions
  8. Debugging   - Finding, fixing, preventing bugs and using debugging tools.
  1. Structures  
  2. Unions  
  3. Classes   (Inheritance, Member Functions, Polymorphism and this pointer)
    1. Abstract Classes   including Pure abstract classes (abstract types)
    2. Nice Class  
  4. Operator overloading  
  5. Standard Input/Output streams Library  
    1. string  
  1. Templates  
    1. Template Meta-Programming (TMP)  
  2. Standard Template Library (STL)  
  3. Smart Pointers  
  4. Exception Handling  
  5. Run-Time Type Information (RTTI)  
  1. Resource Acquisition Is Initialization (RAII)  
  2. Garbage Collection (GC)  
  3. Design patterns   - Creational, Structural and Behavioral patterns.
  4. Libraries   - APIs vs Frameworks and Static and dynamic libraries.
  5. Boost library  
  6. Optimizing your programs  
  7. Cross-platform development  
    1. Win32 (aka WinAPI)   - including Win32 wrappers.
    2. Cross-platform wrappers  
    3. Multitasking  
  8. Software internationalization  
    1. Text encoding  
  9. Unified Modeling Language (UML)  


Appendix A: References Tables
(used on book chapters, print version excludes the Appendix)

Appendix B: External References

WeblinksBooks

Appendix C: C++ Programming by examples [ edit ]
(Compilable programs used on book chapters, print version excludes the Appendix)

Appendix D: C++ Programming - exercises [ edit ]
Supporting exercises for the book content.