Each type, whether a built-in or class type, defines the meaning of a (possibly empty) set of operations on objects of that type. We can add two
int values, run
size on a
vector, and so on. These operations define what can be done with objects of the given type.
Each type also defines what happens when objects of the type are created. Initialization of objects of class type is defined by constructors. Types also control what happens when objects of the type are copied, assigned, ...