Introduction
Recall that a data type consists of a collection of values together with a set of of basic operations defined on these values
For example the type int has a valid data range {INT_MIN,…,INT_MAX} and valid operators {+, -, *, /, %}
A data type is called an abstract data type (ADT) if programmers who use the data type do not have access to the details of how the values and operations are implemented
All the predefined types in C++ (int, double, char, etc.) are ADTs
Programmer defined types are not automatically ADTs