### Data Abstraction

Data abstraction provides the foundation for object-oriented programming. In addition to providing fundamental data types, object-oriented programming languages allow you to define your own data types, called user-defined or abstract data types. In the C programming language, related data items can be organized into structures. These structures can then be manipulated as units of data. In addition to providing this type of data structure, object-oriented programming languages allow you to implement a set of operations that can be applied to the data elements. The data elements and the set of operations applicable to the data elements together form the abstract data type.

To support data abstraction, a programming language must provide a construct that can be used to encapsulate the data elements and operations that make up an abstract data type. In C++, this construct is called a class. An instance of a class is called an object. Classes are composed of data elements called data members and member functions that define the operations that can be carried out on the data members.

C++ Classes