C++: The Basics - eps1.0_Prolog
Hello and welcome. Having chosen C++ as my primary programming language, I would like to learn programming together with you. And this is exactly the topic of the series of articles C++: The Basics.
Before we jump into all possible data types, typical concepts, methods to design the program flow and the general structure of C++ programs, there is first a small overview to get you in the mood.
A brief introduction to C++
C++ was developed in 1979 by Bjarne Stroustroup at Bell Laboratories to serve the functions of a successor to the C programming language. The Bell Labs have their origin in the Bell Systems of Alexander Graham Bell. They are the former research department of the telephone company AT&T and belong today to the research and development department of Nokia.
Unlike C, however, C++ was designed as an object-oriented language. This is most obvious to you in the implemented concepts like inheritance, abstraction, polymorphism and encapsulation.
In C++, objects are structured into classes that contain class-specific data and methods. These class methods operate on the class data. The effect of this organization is to keep the modeling of the data and the execution of actions within the class.
Many popular C++ compilers continue to support C programming as well. But don’t worry, to learn C++ you are not required to have any knowledge or experience in C programming. To learn an object-oriented programming language like C++, you don’t need to know a procedural language like C beforehand.
And what are the advantages?
C++ is considered an intermediate-level programming language. It lies somewhere between a low-level language that is very close to the hardware and a clearly abstracting high-level language. And what does that mean? Well, C++ allows you to program both high-level applications and low-level, near-hardware libraries.
For many programmers, C++ offers the optimal mix of a high-level language that allows you to develop complex applications, while providing flexibility so that the developer can get the best performance by tightly controlling resource consumption and availability.
It’s standard after all
Because of its popularity, years of development led to C++ being accepted and adopted on many different platforms, with most using their own C++ compilers. This evolution led to compiler-specific variations and thus interoperability issues and porting problems. Therefore, the need arose to standardize the language and provide compiler vendors with a standard specification for working with the language.
In 1998, the first version of the C++ standard was ratified by the ISO committee as ISO/IEC 14882:1998. Since then, the standard has undergone ambitious changes that have improved the usability of the language and expanded the support of the standard library.
This version lasted quite a long time. It wasn’t until 2011 that a revised version arrived, bringing with it a huge package of new features and customizations. Among other things, an informal versioning form has been introduced with C++11. The next updates C++14 and C++17 followed in shorter intervals.
At isocpp.org you can view the current status of the standard and how it is expected to evolve.
You should note that the current standard may not be immediately or fully supported by all major compilers. If you claim to always know the latest additions to the standard and want to use them immediately, that is very laudable. But keep in mind that the additions are not a prerequisite for writing good, working C++ applications and may even cause you inconvenience in the beginning.
“Much to learn, you still have.” - Master Yoda
I can well imagine that some terms give you some uncertainty while reading. That is not bad at all, but even good. Because then you’ll be honest with yourself and together we can turn our insecurities into knowledge.
In this series of posts, in addition to the basics of the C++ programming language, we’ll also look at common elements necessary for developing and creating computer programs.
And the nice thing is that much of what you learn will also help you in other situations, with other tools or other programming language. You’ll expand your general understanding of computer science and find your way around a wide variety of problems faster and faster.
Did you like my short overview in C++? Could I increase your motivation and desire to learn C++? That’s my wish, of course, and I hope you’ll come back for the next episode.
I wish you maximum success!