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).

Preface: About the book [ edit ] [ edit chapters list ] [ edit print version ]

Chapter 1 : C++ a multi-paradigm language [ edit ] [ edit summary ] [ print chapter ]

  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  

Chapter 2 : Fundamentals for getting started [ edit ] [ edit summary ] [ print chapter ]

  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.

Chapter 3 : Object-Oriented Programming [ edit ] [ edit summary ] [ print chapter ]

  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  

Chapter 4 : Advanced Features [ edit ] [ edit summary ] [ print chapter ]

  1. Templates  
    1. Template Meta-Programming (TMP)  
  2. Standard Template Library (STL)  
  3. Smart Pointers  
  4. Exception Handling  
  5. Run-Time Type Information (RTTI)  

Chapter 5 : Beyond the Standard [ edit ] [ edit summary ] [ print chapter ]

  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.