Todos los miembros de una clase son privados por defecto. Para poder acceder a miembros de una clase desde otra clase o desde cualquier otra parte del programa necesitamos que algunos de los miembros de clase sean públicos, para ello se antecede la etiqueta public a los miembros públicos. La etiqueta private no es obligatoria ya que, como hemos dicho todos los miembros de una clase son privados, pero se suele poner para facilitar la lectura de los códigos.
Especificadores de acceso de clase
|
|
| Etiqueta | Descripcion |
| private: | Declara privados los miembros que se declaren a partir de la etiqueta, solo accesibles por otros miembros de clase. |
| public: | Declara publicos los miembros que se declaran a partir de la etiqueta, accesibles desde fuera de la clase |
| protected: | Los miembros declarados bajo esta etiqueta, sólo pueden ser accesibles por otros miembros de la propia clase |
El ámbito de una etiqueta termina al comienzo de otra o al final del bloque de la clase ( la llave de cierre } )
Supongamos que necesitamos una clase para almacenar un punto.
Normalmente cuando se diseña una clase en papel se simboliza dentro de un rectángulo con, al menos tres apartados.
- Nombre de la clase
- Miembros privados
- Miembros públicos
| Nombre de la clase |
Punto
|
| Miembros privados | int _x
int _y |
| Miembros públicos o interfaz de la clase |
SetX()
SetY() GetX() GetY() |
Por convención las funciones miembro que establecen un valor a las variables miembro, comienzan su nombre con Set, y las funciones miembro que devuelven el valor de una variable, comienzan su nombre con Get.
También por convención, los nombres de las clases comienzan con una mayúscula.
//Definición de la clase Punto
class Punto
{
private: //Miembros privados de la clase
int _x;
int _y;
public: //Miembros públicos de la clase
void SetX(const int valor);
void SetY(const int valor);
int GetX(void);
int GetY(void);
};
Las variables miembro de la clase Punto, _x e _y, no son accesibles desde fuera de la clase. Para establecer un valor en ellas se tiene que llamar a la función miembro adecuada (SetX() o SetY())
y para recuperar sus valores, el usuario de la clase tendrá que echar mano de las funciones miembro (GetX() o GetY()).
La parte pública de una clase se le llama interfaz de la clase.