ADT stands for abstract data type not only in C++ but in the computer science world. We can define ADT as a class of objects for which logical semantics(behavior) is defined by a set of values and operations.

# Introduction

Barbara Liskov and Stephen N. Zilles proposed ADT for the first time in 1974. ADT is a concept in computer science. ADTs are used in the design and analysis of algorithms, data structures and software systems. In other words ADTs are used to clarify the illustration of abstract algorithms, to arrange and evaluate or assess data structures and to describe the type system of programming languages. Many times they are implemented as modules.

The interface of modules declares the procedure that corresponds to ADT operation. This works as information hiding strategy. By using this strategy we can change the implementation of the module without disturbing the client programs.

## Defining abstract data type

Generalized approach of several algebraic structures (such as lattices, groups, and rings) are also regarded as abstract data type.

Now we know that abstract data type is defined as mathematical model, model of data objects that make up a data types and the functions that operate on these objects. To define the abstract data types, we have to use either “imperative” and “functional” definition styles since there are no standard conventions for defining them.