C++ is a programming language that was developed as an extension to C. The main features that were added were object-oriented programming tools and the enlargement of the standard library. Today, C++ is used in a variety of applications. Although it has been somewhat supplanted on Windows desktops by.NET programming, it remains useful for some applications, such as game programming.
One important feature is the STL or Standard Template Library. This part of the C++ Standard Library provides a variety of data structures in order to make programming easier. For example, the stack class implements a class in computer science. A big advantage that the STL has is its use of generic programming. For example, a stack defined as a stack can only hold string objects. Any element inside the stack is automatically recognized as a string by the compiler, avoiding issues with typecasting.
Additionally, C++ provides full object-oriented programming features as a core part of the language. This allows you to use OO features such as classes, inheritance, polymorphism, etc. in your program. C procedural programming features are also included, allowing easy code integration.
Finally, C++ has a large number of IDEs to help you write code, many of which are free. A big one is Microsoft Visual C++ Express, a fully featured free IDE that can compile C++ code into Windows applications. Additionally, the paid version, Microsoft Visual Studio, allows access to more features such as as.NET programming, so C++ code can be integrated with the rest of your program.
However, C++ is not free of problems. One issue is that large parts of the standard, such as exception handling and function mangling, are left to be defined by the implementation. This means that different C++ can produce programs that don't work correctly with each other.
However, this is alleviated to a large extent by simply using the correct compiler for a platform. For example, Microsoft's Visual C++ compiler produces binaries that work on the Windows platform, while gcc can be targeted to almost any combination of operating system and computer architecture. It's just important to create different binaries for different platforms.
While C++ has fallen out of favor in recent years because of the use of higher-level platforms like.NET and Python, it still has a wide variety of uses in application code, especially when efficiency is highly important. Like C, C++ uses few resources and can be optimized to run very quickly.
C++, like C, is not an easy language. However, it can be a rewarding one because it is somewhat low-level. Like C, it's a good language for a programmer who wants to understand computer science concepts to learn.