Introduction
C++ is a strongly typed, statically typed language. The compiler uses type information related to the variables that are used and the context in which they are used to detect and prevent certain classes of programming errors. This means that every object has a type and that type does not change, ever. In contrast, dynamically typed languages such as Python and PHP defer this type checking until runtime (also known as late binding), and the type of a variable may change during the execution of the application. These languages use the duck test instead of the variables type – that is, "if it walks and talks like a duck, then it must be a duck." Statically typed languages such as C++ rely on the type to determine whether a variable can be used for a given purpose, while dynamically typed languages rely on the presence of certain methods and properties to determine its suitability.
C++ was originally described as "C with classes". What does this mean? Basically...