C++ Paradigm(s) Multi-paradigm:!" procedural, functional, o#$ect-oriented, generic %esigned #y &$arne 'troustrup (ppeared in !)*+ 'ta#le release ,'-.,/C !0**1:12!! . 12!! Pre3ie4 release C++!0 . 12!0 5yping discipline 'tatic, 6ominati3e Ma$or implementations 778M Clang, 9CC, Microsoft 8isual C++, ,ntel C++ Compiler ,n:uenced #y C, 'imula, (79-7 ;*, (da, C7<, M7 ,n:uenced Perl, 7PC, 7ua, Pike, (da )=, >a3a, P?P, %, C)), C@,1" Falcon, 'eedA ,mplementation language C++ -' Cross-platform (multi-platform) Filename eBtension(s) Ccc Ccpp CcBB Cc++ Ch Chh Chpp ChBB Ch++ We#site 6e4s, status D discussion a#out 'tandard C++ C++ Programming at Wiki#ooks C++ (pronounced cee plus plus) is a general purpose programming languageC ,t has imperati3e, o#$ect-oriented and generic programming features, 4hile also pro3iding the facilities for lo4 le3el memory manipulationC ,t is designed 4ith a #ias for systems programming (eCgC em#edded systems, operating system kernels), 4ith performance, eEciency and :eBi#ility of use as its design reFuirementsC C++ has also #een found useful in many other conteBts, including desktop applications, ser3ers (eCgC e-commerce, 4e# search, 'G7), performance critical applications (eCgC telephone s4itches, space pro#es) and entertainment soft4are, such as 3ideo gamesC+" ,t is a compiled language, 4ith implementations of it a3aila#le on many platformsC 8arious organiHations pro3ide them, including the F'F, 778M, Microsoft and ,ntelC C++ is standardised #y the ,nternational -rganiHation for 'tandardiHation (,'-), 4hich the latest (and current) ha3ing #eing ratiIed and pu#lished #y ,'- in 'eptem#er 12!! as ,'-.,/C !0**1:12!! (informally kno4n as C++!!)C 0" 5he C++ programming language 4as initially standardised in !))* as ,'-.,/C !0**1:!))*, 4hich 4as then amended #y the C++2+, ,'-.,/C !0**1:122+, standardC 5he current standard (C++!!) supersedes these, 4ith ne4 features and an enlarged standard li#raryC &efore standardiHation (!)*) on4ards), C++ 4as de3eloped #y &$arne 'troustrup at &ell 7a#s, starting in !)A), 4ho 4anted an eEcient :eBi#le language (like C) that also pro3ided high le3el features for program organiHationC Many other programming languages ha3e #een in:uenced #y C++, including C@, >a3a, and ne4er 3ersions of C (after !))*)C ?istory &$arne 'troustrup, creator of C++ &$arne 'troustrup, a %anish and &ritish trained computer scientist, #egan his 4ork on C++Js predecessor KC 4ith ClassesK in !)A)C=" 5he moti3ation for creating a ne4 language originated from 'troustrupJs eBperience in programming for his PhC%C thesisC 'troustrup found that 'imula had features that 4ere 3ery helpful for large soft4are de3elopment, #ut the language 4as too slo4 for practical use, 4hile &CP7 4as fast #ut too lo4-le3el to #e suita#le for large soft4are de3elopmentC When 'troustrup started 4orking in (5D5 &ell 7a#s, he had the pro#lem of analyHing the <6,L kernel 4ith respect to distri#uted computingC Memem#ering his PhC%C eBperience, 'troustrup set out to enhance the C language 4ith 'imula-like featuresC;" C 4as chosen #ecause it 4as general-purpose, fast, porta#le and 4idely usedC (s 4ell as C and 'imulaJs in:uences, other languages also in:uenced C++, including, (79-7 ;*, (da, C7< and M7C ,nitially, the class, deri3ed class, strong typing, inlining, and default argument features 4ere added to C 3ia 'troustrupJs KC 4ith ClassesK to C compiler, CpreCA" ,n !)*+, it 4as renamed from C 4ith Classes to C++ (++ #eing the increment operator in C)C 6e4 features 4ere added including 3irtual functions, function name and operator o3erloading, references, constants, type-safe free-store memory allocation (ne4.delete), impro3ed type checking, and &CP7 style single-line comments 4ith t4o for4ard slashes (..), as 4ell as the de3elopment of a proper compiler for C++, CfrontC ,n !)*=, the Irst edition of 5he C++ Programming 7anguage 4as released, 4hich #ecame the deIniti3e reference for the language, as there 4as not yet an oEcial standardC*" 5he Irst commercial implementation of C++ 4as released in -cto#er of the same yearC)" ,n !)*) C++ 1C2 4as released follo4ed #y the updated second edition of 5he C++ Programming 7anguage in !))!C!2" 6e4 features in 1C2 included multiple inheritance, a#stract classes, static mem#er functions, const mem#er functions, and protected mem#ersC ,n !))2, 5he (nnotated C++ Meference Manual 4as pu#lishedC 5his 4ork #ecame the #asis for the future standardC 7ate feature additions included templates, eBceptions, namespaces, ne4 casts, and a #oolean typeC ,n 12!!, C++!! 4as released 4hich added more features and enlarged the standard li#rary further (compared to it in !))*), pro3iding more facilities for C++ programmers to use, 4ith more additions planned for 12!0 and 12!AC