C++ is an enhanced C language typically used for object oriented programming. It traces its origins back well over thirty years. Although it’s far from the oldest computer language, it’s one of the older ones that is in common usage today – so you might say it gets an A for its ability to adapt to changing technological times.
C++ was developed by Bjarne Stroustrup, who did the first development work as part of his PhD project. During the early years, he called the language “C with Classes”. He had begun developing a new language because he felt that no existing language was ideal for large scale projects. Later, when he was working at AT&T Bell Labs, he again felt limited. He dusted off his “C with Classes” and added features of other languages. Simula had a strong influence; AlLGOL 68 played a role. Ultimately, a lot more than classes got added: virtual functions, templates, and operator overloading.
C++has influenced later languages like PHP, Java, and (not surprisingly) C# (C-Sharp).
C++ has grown far beyond a one man operation. The name actually came from another developer, Rick Mascitti. It was partly a play on the name of the “++” operator and partly a reference to the enhancement; two pluses may have been a bit of a joke.
The language was first standardized in 1998. Standards were again issued in 2003, 2007, and 2011. C++ is maintained by the ISO, a large standards committee. The current version is C++11. According to Stroustrup, the biggest improvement is in abstraction mechanisms. Among the other goals of the most recent revision: to make C++ a better language for embedded systems and to better support novices.
Development has been guided by certain ideals. C++ strives to be portable; there is an attempt to avoid reliance on features that are platform-dependent.
Goals of the most recent revision include: to make C++ a better language for embedded systems and to better support novices.
The standard, of course, isn’t all there is; there are libraries that exist outside it.
Use of C++
C++ is widely used in embedded systems software engineering. It’s also popular in communications and gaming. It is used in many other industries: health care, finances, and even defense.
Facebook has posted ads that cite C++ among the desired skills. Other recent postings for those versed in C++ come from Verizon Wireless, WSFS Bank, and Lord & Taylor.
One reason that programmers opt for C++ is that it interfaces well with other languages. Another plus is that it is high performance.
The process of mining existing languages to create new ones has of course been ongoing. C++has influenced later languages like PHP, Java, and (not surprisingly) C# (C-Sharp).
Although C++ isn’t owned in the way that some other computer languages are, there are still authority sites. You can get information about official standards at Open Standards.
You may also visit the founder’s site. His homepage includes links to libraries, articles, and resources as well as tid bits about the development process. Stroustrup even has his own style and technique FAQ. There are questions about classes, templates, exceptions, and other language features.
There are other places you can turn to study C++. MakeUseof recently recommended three sites. LearnCPlusPlus is touted as a good beginner’s tutorial. CProgramming offers an accessible tutorial with quizzes and practice questions. It’s written in a friendly style and opens with the basics like setting up a compiler. You’ll also find common beginner’s mistakes. If you like the style, you can get a book by the author.
Cplusplus.com offers a well-organized tutorial, but one that may require more background knowledge. You can visit the site for forums and reference materials.
C++ founder Stroustrup stresses that even his own site isn’t a substitute for a textbook. C++ may be easier to learn than C (depending on who you ask), but there’s a lot to it. Stroustrup’s own book is The C++ Programming Language. It’s designed for programmers, and may not be ideal for a novice. Additional book recommendations can be found on Stroutsup’s site.
There is no one certification that is considered to be official or based on industry standards. Some employers value Brainbench certifications, though they’re not without controversy. One positive is that they’re relatively inexpensive. There are several: C++, C++ Fundamentals (an entry level exam), and Visual C++.