------------------------------------------------------------------------------
MC logo
Introduction
[^] CSc 220 Home
------------------------------------------------------------------------------
[Introduction] [Boolean and Control] [Functions] [Arrays and Pointers] [Dynamic Arrays] [Array Errors] [Command Array] [Standard Containers] [Structs and Classes] [Automatic Pointer] [Multi-File Programs] [Copying Objects] [Templates] [Inheritance] [Plain C I/O] [Type Odds And Ends] [Plain C Strings] [File I/O]
[Standards] [Programming Environment] [Hello, World!] [Hello Again, World!] [Identifiers] [Constants] [Average of Three] [Basic Types] [Shortcut Operators] [Increment Operators] [C++ Strings]
Reading: Ch. 1-4, plus pp. 71 and 72.

C: 1970's

Created at ATT Bell Labs

Invented to re-write Unix
Replacement for assembler language
Low-level constructs

Minicomputer
Small language; Small compiler

Popular for early PC's.

C++: 1980's

C was very popular.
Object-oriented programming becoming state-of-the-art.
ATT wanted to extend C to keep it up-to-date. Originally: C + classes
Now: C + everything but the kitchen sink

Java: 1990's

Cleaned-up C++

Discarded plain C compatability
Strengthened the type system
Applied the object model more consistently.

STL: 1990's

Templates were added to C++, and the the Standard Template Library was developed at SGI/HP.
The STL features were added to the C++ standard libraries.

Currently

The C++ standard continues to be updated. Current changes include lambda expressions and greatly improved support for automatic memory allocation and threading.

C++ Has

All of C.
A few incompatibilities.

General improvements.
Better I/O
Decent strings
Etc.

Classes and objects.

Templates.

Glued Together

Most C programs are C++ programs
But not all

In C++

Two separate standard I/O systems.

Two separate systems for dynamic memory allocation.

Two different systems for string handling.