.. include:: .. ot-topic:: cxx03.introduction :dependencies: c.introduction.installation Introduction ============ Background ---------- **C is great**: * One has control over everything * Dominant language for years * Real Men don't do Object Oriented Programming **But** ... * Same bugs over and over * Memory leaks and other cleanup * Dangling pointers * ... * The need for inheritance was obvious even without language support * Implementation idioms were similar * ... but never the same * ... and always had to have too much code History ------- * 1980: Bjarne Stroustrup - "C with Classes" * 1983: C++ * 1985: The C++ Reference Manual (Stroustrup) * 1990: The Annotated C++ Reference Manual (Stroustrup) * 1998: C++ ISO/IEC 14882:1998 - C++98 * Standard Template Library * 2003: Standard Revision (Fix) - C++03 * 2005 ...: Technical Reports (Fixes) * 2011: C++11, C++14, ... * Library extension * New syntax (Unification with C, ...) Content ------- * Data encapsulation - *Object* * Constructor, destructor * Access control: ``public``, ``protected``, ``private`` * Methods and operators (*Copy!*) * Inheritance * Classic OO Design |longrightarrow| science on its own * Templates * Standard Library and Standard Template Library (STL) * String * IO streams * Container classes * Threading