A structure can be used to combine data of different types into a single (compound) data value.
A class can be used to combine data and functions into a single (compound) object.
A member variable or a member function for a class may be either public or private. If it is public, it can be used outside of the class. If it is private, it can be used only in the definition of another member function in the class.
A function may have formal parameters of a class or structure type. A function may return values of a class or structure type.
A member function for a class can be overloaded in the same way as ordinary functions are overloaded.
A constructor is a member function of a class that is called automatically when an object of the class is declared. A constructor must have the same name as the class of which it is a member.
A data type consists of a collection of values together with a set of basic operations defined on these values.
A data type is called an abstract data type (abbreviated ADT) if a programmer who uses the type does not need to know any of the details about how the values and operations for that type are implemented.
One way to implement an abstract data type in C++ is to define a class with all member variables being private and with the operations implemented as public member functions.
Inheritance refers to a parent/child relationship between classes. The child or derived class inherits members from the parent class.