One of the most critical aspects of object-oriented programming is encapsulation, which allows one to define labels for the data members and member functions, to specify if they are accessible from other classes or not. As a result, data members labeled as private can not be directly manipulated by member functions of other classes. In order to be able to manipulate these data members, the creator of the class must provide special member functions labeled as public.