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 single page version edit) with all chapters is available (attention to its size).
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 ]
- Introducing C++
 - Programming languages 
- Programming paradigms - the versatility of C++ as a multi-paradigm language, concepts of object-oriented programming (objects and classes, inheritance, polymorphism).
 
 - Comparisons  - to other languages, relation to other computer science constructs and idioms.
- with C
 - with Java
 - with C#
 - with Managed C++ (C++/CLI)
 - with D
 
 
Chapter 2 : Fundamentals for getting started [ edit ] [ edit summary ] [ print chapter ]
- The code - includes list of recognized keywords.
 - Compiler 
- Preprocessor - includes the standard headers.
 - Linker
 
 - Variables and storage - locality, scope and visibility, including source examples.
 - Operators  - precedence order and composition, , assignment, sizeof, new, delete, [] (arrays), * (pointers) and & (references).
- Logical operators - the && (and), || (or), and ! (not).
 - Conditional operator - the ?:
 
 - Type casting - Automatic, explicit and advanced type casts.
 - Flow of control - Conditionals (if, if-else, switch), loop iterations (while, do-while, for) and goto.
 - Functions - Introduction (including main), argument passing, returning values, recursive functions, pointers to functions and function overloading.
 - Debugging - Finding, fixing, preventing bugs and using debugging tools.
 
Chapter 3 : Object-Oriented Programming [ edit ] [ edit summary ] [ print chapter ]
- Structures
 - Unions
 - Classes (Inheritance, Member Functions, Polymorphism and this pointer)
 - Operator overloading
 - Standard Input/Output streams Library
 
Chapter 4 : Advanced Features [ edit ] [ edit summary ] [ print chapter ]
- Templates
 - Standard Template Library (STL)
 - Smart Pointers
 - Exception Handling
 - Run-Time Type Information (RTTI)
 
Chapter 5 : Beyond the Standard [ edit ] [ edit summary ] [ print chapter ]
- Resource Acquisition Is Initialization (RAII)
 - Garbage Collection (GC)
 - Design patterns - Creational, Structural and Behavioral patterns.
 - Libraries - APIs vs Frameworks and Static and dynamic libraries.
 - Boost library
 - Optimizing your programs
 - Cross-platform development
 - Software internationalization
 - Unified Modeling Language (UML)
 
Appendix A: References Tables
(used on book chapters, print version excludes the Appendix)
Appendix B: External References
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.
    This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.