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.
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
- Comparisons - to other languages, relation to other computer science constructs and idioms.
Chapter 2 : Fundamentals for getting started [ edit ] [ edit summary ] [ print chapter ]
- The code - includes list of recognized keywords.
- Variables and storage - locality, scope and visibility, including source examples.
- Operators - precedence order and composition, , assignment, sizeof, new, delete,  (arrays), * (pointers) and & (references).
- 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 ]
Chapter 4 : Advanced Features [ edit ] [ edit summary ] [ print chapter ]
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)