C with Classes (1979) extended C by adding class concepts and related language/compiler features while retaining C’s efficiency.
“C with Classes” was the direct predecessor of C++. In 1979, Bjarne Stroustrup began work on this language as an extension of C, aiming to keep C’s efficiency and flexibility while adding higher-level program organization. The initial “C with Classes” approach extended the C compiler (Cpre) with class-related features such as classes and derived classes, along with strong typing, inlining, and default arguments. As Stroustrup progressed, he moved toward a more traditional compiler-based design. In 1982, he began designing a cleaned-up and extended successor to “C with Classes,” briefly called C84 before adopting the name C++. The resulting language incorporated core object-oriented and C-like capabilities, including virtual functions, function and operator overloading, references, const, improved type checking, user-controlled dynamic memory allocation (new/delete), and // single-line comments. This evolution from “C with Classes” to C++ established the foundation for later standardization and feature growth.
C with Classes (1979) extended C by adding class concepts and related language/compiler features while retaining C’s efficiency.
Stroustrup later redesigned the language using traditional compiler technology, leading to C++ with major OOP features such as virtual functions and overloading.
The name “C++” reflects the evolutionary step from C, building on C’s “++” increment operator idea.
The predecessor to C++ that extended C (via the Cpre compiler) with class-related features and stronger typing.
The C compiler extension used in the early “C with Classes” implementation to add new language capabilities.
A C++ feature enabling runtime polymorphism by dispatching calls through a base-class interface.
C++ mechanisms that allow multiple functions/operators to share the same name while behaving differently based on argument types.
C++ language constructs that provide an alias to an existing object, enabling safer and more expressive parameter passing than raw pointers in many cases.
C++ operators for user-controlled dynamic memory allocation and deallocation.
“Can you explain what "C with Classes (1979) extended C by adding class concepts and related language/compiler features while retaining C’s efficiency." means in simple terms?”