50% developed

C++ Programming

From Wikibooks, open books for an open world
Jump to navigation Jump to search

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++ Development stage: 100%
  2. Programming languages Development stage: 100%
    1. Programming paradigms Development stage: 80% - the versatility of C++ as a multi-paradigm language, concepts of object-oriented programming (objects and classes, inheritance, polymorphism).
  3. Comparisons Development stage: 80% - to other languages, relation to other computer science constructs and idioms.
    1. with C Development stage: 80%
    2. with Java Development stage: 80%
    3. with C# Development stage: 30%
    4. with Managed C++ (C++/CLI) Development stage: 30%
    5. with D Development stage: 30%

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

  1. The code Development stage: 70% - includes list of recognized keywords.
    1. File organization Development stage: 80%
    2. Statements Development stage: 80%
    3. Coding style conventions Development stage: 80%
    4. Documentation Development stage: 80%
    5. Scope and namespaces Development stage: 90%
  2. Compiler Development stage: 70%
    1. Preprocessor Development stage: 100% - includes the standard headers.
    2. Linker Development stage: 70%
  3. Variables and storage Development stage: 90% - locality, scope and visibility, including source examples.
    1. Type Development stage: 90%
  4. Operators Development stage: 80% - precedence order and composition, , assignment, sizeof, new, delete, [] (arrays), * (pointers) and & (references).
    1. Logical operators Development stage: 70% - the && (and), || (or), and ! (not).
    2. Conditional operator Development stage: 70% - the ?:
  5. Type casting Development stage: 80% - Automatic, explicit and advanced type casts.
  6. Flow of control Development stage: 80% - Conditionals (if, if-else, switch), loop iterations (while, do-while, for) and goto.
  7. Functions Development stage: 70% - Introduction (including main), argument passing, returning values, recursive functions, pointers to functions and function overloading.
    1. Standard C Library Development stage: 70% - I/O, string and character, math, time and date, memory and other standard C functions
  8. Debugging Development stage: 80% - Finding, fixing, preventing bugs and using debugging tools.

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

  1. Structures Development stage: 70%
  2. Unions Development stage: 100%
  3. Classes Development stage: 70% (Inheritance, Member Functions, Polymorphism and this pointer)
    1. Abstract Classes Development stage: 60% including Pure abstract classes (abstract types)
    2. Nice Class Development stage: 80%
  4. Operator overloading Development stage: 80%
  5. Standard Input/Output streams Library Development stage: 60%
    1. string Development stage: 50%

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

  1. Templates Development stage: 80%
    1. Template Meta-Programming (TMP) Development stage: 60%
  2. Standard Template Library (STL) Development stage: 60%
  3. Smart Pointers Development stage: 50%
  4. Exception Handling Development stage: 60%
  5. Run-Time Type Information (RTTI) Development stage: 60%

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

  1. Resource Acquisition Is Initialization (RAII) Development stage: 70%
  2. Garbage Collection (GC) Development stage: 80%
  3. Design patterns Development stage: 60% - Creational, Structural and Behavioral patterns.
  4. Libraries Development stage: 40% - APIs vs Frameworks and Static and dynamic libraries.
  5. Boost library Development stage: 50%
  6. Optimizing your programs Development stage: 60%
  7. Cross-platform development Development stage: 40%
    1. Win32 (aka WinAPI) Development stage: 30% - including Win32 wrappers.
    2. Cross-platform wrappers Development stage: 60%
    3. Multitasking Development stage: 70%
  8. Software internationalization Development stage: 10%
    1. Text encoding Development stage: 10%
  9. Unified Modeling Language (UML) Development stage: 60%


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

KeywordsPreprocessors DirectivesStandard HeadersData TypesOperatorsStandard C Library FunctionsASCII chart

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.