C++
C++ was developed by Bjarne Stroustrup
at Bell Laboratories, the same research lab, where "C" was developed at
originally. Bjarne Stroustrup called it "C with Classes".
Some people believe, this term is a bit misleading, because C++ is offering
a lot more to programmers, than "just classes". C++ has all features of an
object oriented language, but it is not restricted to that. Programmers
are free to use the good old "C" as well, which is a subset of C++..
Why C++ is so popular
There are many object oriented languages out there. The reason why
C++ is so widely used are various.
- C++ offers all features of object oriented programming. Classes,
Polymorphism, Inheritance, also multiple inheritance, modularity, ...
- C++ is portable, because it is covered by the ANSI
C++ standard.
- C++ is fast. Compiler builders have done lots of homework since the end of
the 1980's, when C++ was developed originally. Other languages like Java
have improved a lot as well, but typically native C++ code is still faster.
- C++ is the "natural skill upgrade for a C programmer". C programmers
can learn C++ bit by bit and "grow into" the world of object oriented
programming.
- System Programming. Like in C, C++ programmers can access the OS ressources
(system calls) directly. This is fast and gives flexibility.
C++ is the Unix system programming language in these days.
- C++ is elegant. It is fun!
Literature
- Bjarne Stroustrup
has probably written the best known book on C++. It is a bit
of a hard read for a beginner, but still one of the best sources for C++
grammar and the features of the language.
|
|
- I can highly recommend Ray Lischner's "C++ in a Nutshell", which is not
only a good reference on C++, but also and particulary on STL.
|
|
Tutorials
There are many. A few ones are given here.
Some tutorials mix the language tutorial with a STL tutorial.
For STL tutorials, please have a read on STL .
- A beginner's tutorial
- A "delta" tutorial for C - Programmers
- If you want to find out about your skills, have a look at this
exam
Platforms
- All Unix based systems
- All Windows Systems
- Many more