001 C++ Programming Overview PDF
001 C++ Programming Overview PDF
HJ Chen
2017/10/11
Contents
> References
> Overview
2
References
> Ivor Horton/ Beginning Visual C++ 2013, 2014 Ed.
> Bjarne Stroustrup/ The C++ Programming Language, 4th Ed., 2013
> Bjarne Stroustrup/ The Design and Evolution of C++, 1994
> Bjarne Stroustrup Website http://www.stroustrup.com/
> Deitel & Deitel/ C++ How To Program, 2nd Ed., 1998
> Juan Soulié/ C++ Language Tutorial, cplusplus.com, 2007
> C++ Website http://www.cplusplus.com/
> C++ Programming / Wikibooks.org, 2012
> C Programming / Wikibooks.org, 2012
> More C++ Idioms/Print Version
3
Overview
Brief C++ History
> 1954 Fortran: (The IBM Mathematical Formula Translating System)
> 1969 B: Ken Thompson at Bell Labs
> 1971 C: Ken Thompson and Dennis Ritchie at Bell Labs
> 1979 C with Classes: Bjarne Stroustrup for his Ph.D. thesis at Bell Labs
> 1982~1983 Cfront: Cfront compiler front-end for the C84 language
> 1983 C++: Bjarne Stroustrup at Bell Labs (naming by Rick Mascitti)
> 1989 ANSI C 89: Standard Template Library and Standard C Library
> 1998 ANSI C++98: ANSI C++ Standard
> 2011 ANSI C++11: ANSI C++ Standard
> 2014 ANSI C++14: ANSI C++ Standard
> 2017 ANSI C++17: ANSI C++ Standard (under development)
5
Honors of Bjarne Stroustrup
8
Standard C++ History
1990 ANSI C++ Committee founded
1991 ISO C++ Committee founded
1992 STL implemented in C++
1998 C++98 (ISO/IEC 14882:1998)
1998 The C++ Programming Language, 3rd edition
1999 Boost founded by the committee members to produce new high-quality candidate libraries for
the standard.
2003 C++03 (ISO/IEC 14882:2003)
2006 Performance TR (ISO/IEC TR 18015:2006)
2007 Library extension TR1 (ISO/IEC TR 19768:2007)
2010 Mathematical special functions (ISO/IEC 29124:2010)
2011 C++11 (ISO/IEC 14882:2011)
2012 The Standard C++ Foundation founded
2013 The C++ Programming Language, 4th edition
2014 C++14 (ISO/IEC 14882:2014)
2017 C++17 (under development)
Data Source: Bjarne Stroustrup/ The Design and Evolution of C++
9 And http://en.cppreference.com/w/cpp/language/history
Implementation of C with Classes
> 1980
– Classes
– Derived classes
– Public/private access control
– Constructors and destructors
– Call and return functions
– Friend classes
– Type checking and conversion of function arguments
> 1981
– Inline functions
– Default arguments
– Overloading of the assignment operator
13 Data Source: CppCon 2016: Bjarne Stroustrup “The Evolution of C++: Past, Present, and Future”
High-Level and Low-Level
14 Data Source: CppCon 2016: Bjarne Stroustrup “The Evolution of C++: Past, Present, and Future”
Why Use C?
> C is flexible
> C is efficient
> C is available
> C is portable