1. Data encapsulation refers to wrapping up data and functions together in a class. Data hiding keeps data private to prevent accidental changes and only accessible by member functions.
2. Private members are only accessible by member functions of the class, while public members are accessible by member functions of the class and derived classes, as well as by objects of the class.
3. An example class illustrates that a private member cannot be accessed directly by a derived class, while a public member function of the base class can be called by the derived class.