The first implementation of C++ was developed in the eighties at the AT&T Bell Labs by Bjarne Stroustrup, where the Unix operating system was created.
C++ was originally a `pre-compiler', similar to the preprocessor of C, which converted special constructions in its source code to plain C. This code was then compiled by a normal C compiler. The `pre-code', which was read by the C++ pre-compiler, was usually located in a file with the extension .cc, .C or .cpp. This file would then be converted to a C source file with the extension .c, which was compiled and linked.
The nomenclature of C++ source files remains: the extensions .cc and .cpp are usually still used. However, the preliminary work of a C++ pre-compiler is in modern compilers usually included in the actual compilation process. Often compilers will determine the type of a source file by the extension. This holds true for Borland's and Microsoft's C++ compilers, which assume a C++ source for an extension .cpp. The GNU compiler gcc, which is available on many Unix platforms, assumes for C++ the extension .cc.
The fact that C++ used to be compiled into C code is also visible from the fact that C++ is a superset of C: C++ offers all possibilities of C, and more. This makes the transition from C to C++ quite easy. Programmers who are familiar with C may start `programming in C++' by using source files with an extension .cc or .cpp instead of .c, and can then just comfortably slide into all the possibilities that C++ offers. No abrupt change of habits is required. [However this defeats the major purpose of the "object oriented" concepts within this new language. Object oriented programming requires a complete change of approach to be effective.]
Last updated 2000/03/17
From: Frank B. Brokken, (and Karel Kubat until version 4.0.0), ICCE, University of Groningen, Grote Rozenstraat 38, 9712 TJ Groningen, Netherlands