Hola,
ahi te van unas explicaciones acerca de public, protected, private y friend. Espero que te sirva de ayuda. Si tienes alguna duda hazlo saber
Public: A las variables y funciones publicas declaradas en una clase pueden accederse desde las clases heredadas de esta clase así como desde cualquier rutina externa.
Protected: A las variables y funciones protected declaradas en una clase pueden accederse desde las clases heredadas de esta clase pero no desde una rutina externa.
Private: A las variables y funciones privadas declaradas en una clase solo puede accederse desde dicha clase y no desde clases heredadas de esta clase ni desde una rutina externa.
Friend: Una funcion declarada como friend en una clase, no es un miembro de dicha clase pero puede acceder a los elementos privados de dicha clase.
Suerte con el C++