| Lesson 5 || C++ compilers |
| Objective || How this course attempts to support the differences in C++ compilers. |
Building Classes using C++ compilers
This course attempts to support the differences in C++ compilers.
The code in this course is written in ANSI C++ and should compile without errors on many ANSI-compliant compilers.
ANSI C++, however, is a rapidly evolving standard and many older compilers are not able to use the
latest additions in the language
For this reason, the code used in this course was written to run on as wide a variety of compilers as possible. The code has been tested using GNU gcc/g++ (Unix), Microsoft Visual C++ (Windows).
If you are using another compiler, though, you may need to modify the code slightly to get it to compile.
You may have to rely on the compiler vendor's support if compiling errors occur.
Key differences might exist in various compiler flags and library files. Keep this in mind when working through this course.
C++ is one of the most widely used programming languages in the world. Well-written C++ programs are fast and efficient. The language is more flexible than other languages because you can use it to create a wide range of apps.
From fun and exciting games, to high-performance scientific software, to AI programs that need to discover underwater mines. For more than 20 years, C++ has been used to solve many problems.
What you might not know is that an increasing number of C++ programmers have folded up the traditional C-style programming of yesterday and instead have begun to use modern C++.
One of the original requirements for C++ was backward compatibility with the C language. Since then, C++ has evolved through several iterations:
- C with Classes,
- then the original C++ language specification,
- and then the many subsequent enhancements.
Because of this heritage, C++ is often referred to as a multi-paradigm programming language.
In C++, you can do purely procedural C-style programming that involves raw pointers, arrays, null-terminated character strings, custom data structures, and other features that may enable great performance but can also spawn bugs and complexity.
Because C-style programming is fraught with perils like these, one of the founding goals for C++ was to make programs both type-safe and easier to write, extend, and maintain.
Early on, C++ embraced programming paradigms such as object-oriented programming.
Over the years, features have been added to the language, together with highly-tested standard libraries of data structures and algorithms.
It's these additions that have made the modern C++ style possible.