by John
Kopp
Welcome to About.com's C/C++ site
If you're interested in learning about C or C++, this is
the place. We have a series of online courses and tutorials
that will teach you either language from the start.
A Brief History Of C
The C programming language was developed at Bell Labs
during the early 1970's. Quite unpredictably it derived from a
computer language named B and from an earlier language BCPL.
Initially designed as a system programming language under UNIX
it expanded to have wide usage on many different systems. The
earlier versions of C became know as K&R C after the
authors of an earlier book, "The C Programming Language" by
Kernighan and Ritchie. As the language further developed and
standardized, a version know as ANSI (American National
Standards Institute) C became dominant. As you study this
language expect to see references to both K&R and ANSI C.
Although it is no longer the language of choice for most new
development, it still is used for some system and network
programming as well as for embedded systems. More importantly,
there is still a tremendous amount of legacy software still
coded in this language and this software is still actively
maintained.
A Brief History Of C++
Bjarne Stroustrup at Bell Labs initially developed C++
during the early 1980's. It was designed to support the
features of C such as efficiency and low-level support for
system level coding. Added to this were features such as
classes with inheritance and virtual functions, derived from
the Simula67 language, and operator overloading, derived from
Algol68. Don't worry about understanding all the terms just
yet, they are explained in About's C++ tutorials. C++ is best
described as a superset of C, with full support for
object-oriented programming. This language is in wide spread
use.
Differences between C and C++
Although the languages share common syntax they are very
different in nature. C is a procedural language. When
approaching a programming challenge the general method of
solution is to break the task into successively smaller
subtasks. This is known as top-down design. C++ is an
object-oriented language. To solve a problem with C++ the
first step is to design classes that are abstractions of
physical objects. These classes contain both the state of the
object, its members, and the capabilities of the object, its
methods. After the classes are designed, a program is written
that uses these classes to solve the task at hand.
Do You Need To Know C Before Learning C++?
Although this question is still a source of debate, and
many including the author of this article learned C first, I
believe the answer is no. The features of C are supported by
C++. After learning C++ you will be able to read and
understand most of what you would see in any C program you
might encounter and can fill in any missing details easily.
Additionally, the techniques used to solve programming
problems in an object-oriented language such as C++ differ
from a procedural language such as C. C programmers who need
to study C++ must unlearn some of their programming techniques
and replace them with techniques for object-oriented
design.
Join a chat for
beginners in C and C++
Best wishes for success,
John
Previous
Articles