programming Strict enforcement of
type rules but with
well-defined exceptions or an explicit type-violation
mechanism.
Weak typing is "friendlier" to the programmer than
strongtyping, but catches fewer errors at compile time.
C and
C++ are weakly typed, as they automatically
coerce int a = 5;
float b = a;
They also allow ignore
typedefs for the purposes of type
comparison; for example the following is allowed, which would
probably be disallowed in a strongly typed language:
typedef int Date; /* Type to represent a date */
Date a = 12345;
int b = a; /* What does the coder intend? */
C++ is stricter than C in its handling of enumerated types:
enum animal a = CAT; /* NB The enum is optional in C++ */
enum animal b = 1; /* This is a warning or error in C++ */
(2000-07-04)