The C++ Data Types
Implicit type conversion exists but it is a potential source of errors,
e.g., int I; float a=10.5; I = a; // I equals 10
unsigned long x=1000000000000; I = x; // I is undefined
Explicit type conversion using casting is done as follows:
int I=2, j=5; float c; c = (float) I / (float) j; // floating point divide
unsigned long x, int z = 10000; x = (unsigned long) z*z;
Type conversion from a wider data type to narrower data type is unsafe.
Types can be derived using the following declaration operators:
1. * used to specify pointer type objects
2. & used to define references
3. [ ] used to defined arrays
4. () used to define functions
other Derived Types can be defined using structs, classes, and enum