class definition or typedef) that represents the abstract concept, and to phrase your declarations that way. This lets you change your implementation by editing the original type definition.
typedef long TimeStamp;
typedef short Coordinate;
class TString { ... };
...
TimeStamp time;
Coordinate mouseX
TString menuName;
A typedef doesn't introduce a new, distinct type; it's just a synonym. Also, the compiler doesn't warn you if you mix it with any other type that is defined synonymously.For more information about raw C types, see "Bad assumptions" on page 140.