- OOP stands for Object-oriented programming
There are two types of programming paradigms:
- Procedural programming: procedures and functions perform operations on data.
- Object-oriented programming: objects are created that contain data and procedures.
C++ was developed in the 80s by a single person, Danish Computer Scientist Bjarne Stroustrup. He wanted to develop a language that allowed for (a) good program organization with (b) C's efficiency and flexibility. Why? Because he wanted to be able to go from ideation of a project to its implementation in half a year. You can read more about the genesis of C++ and the philosophy behind it from the author himself here.
C++ has the following features:
- Flexibility: Allows for both generic / functional programming, as well as object-oriented programming.
- Efficiency: Allows for low-level memory management, this makes it attractive for applications in systems programming and resource-constrained software environments.
- Performance: Allows for low-level memory management, which results in code that runs operations very quickly.
- Core layers of the Mozilla Firefox browser is written in C++.
- Applications with graphical user interfaces such as CAD software and games.
- Foundations for programming language such as Swift (language for iOS Apps).
- Database servers such as MySQL.
- Cryptocurrency software that underlies currencies such as bitcoin and monero.
You can explore the C++ source code of these projects through the links above.
Many elements of C++ can be found in other programming languages, so what you learn can translate to different programming contexts and applications such as Embedded Systems (e.g. Arduino), Operating Systems, Video Games, Mobile Applications, Web Servers, and Databases.