programacion

Páginas: 7 (1549 palabras) Publicado: 17 de junio de 2013
Funciones miembro
Función miembro es aquella que está declarada en ámbito de clase. Son similares a las funciones habituales, con la salvedad de que el compilador realizara el proceso de Decoración de nombre (Name Mangling en inglés): Cambiara el nombre de la función añadiendo un identificador de la clase en la que está declarada, pudiendo incluir caracteres especiales o identificadoresnuméricos. Además, las funciones miembro reciben implícitamente un parámetro adicional: El puntero this, que referencia al objeto que ejecuta la función.
Las funciones miembro se invocan accediendo primero al objeto al cual refieren, con la sintaxis: myobject.mymemberfunction (), esto es un claro ejemplo de una función miembro.
Observe que en la función miembro, Show, llamadas a las otras funcionesmiembro, x y y, se crea sin los operadores miembro-selección. Estas llamadas implícitamente this->x() erróneo y this->y(). Sin embargo, en Principal, la función miembro, Show, debería seleccionar mediante el objeto pt y el operador miembro-selección (.).
Las funciones estáticas declaradas dentro de una clase se puede llamar mediante los operadores miembro-selección o especificando el nombre defunción completo (nombre de clase incluida.

Una función declarada con la palabra clave de friend no se considera un miembro de la clase en la que se declara friend (aunque puede ser un miembro de otra clase). Una declaración de friend controla el acceso que tiene una función de miembro no los datos de la clase.


La declaración de clase siguiente muestra cómo se declaran y se llama a las funcionesmiembro:
// member_functions2.cpp
class Point
{
public:
unsigned GetX()
{
return ptX;
}
unsigned GetY()
{
return ptY;
}

void SetX( unsigned x )
{
ptX = x;
}
void SetY( unsigned y )
{
ptY = y;
}

private:
unsigned ptX, ptY;
};

int main()
{
// Declare a new object of type Point.
Point ptOrigin;// Member function calls use the . member-selection operator.
ptOrigin.SetX( 0 );
ptOrigin.SetY( 0 );

// Declare a pointer to an object of type Point.
Point *pptCurrent = new Point;
// Member function calls use the -> member-selection operator.
pptCurrent->SetX( ptOrigin.GetX() + 10 );
pptCurrent->SetY( ptOrigin.GetY() + 10 );
}
Generalmente en las clases sesuelen ubicar los datos miembros bajo la etiqueta private, y las funciones miembro bajo la etiqueta public, esto favorece a una buena ingeniería de software.
La idea es que los clientes de las clases no puedan acceder directamente a los datos miembros de la clase, sino a través de las funciones miembro y sólo cuando sea necesario.
Si intentaramos acceder a un dato miembro privado, obtendríamos unerror en tiempo de compilación que nos alertaría. Dicho esto, podríamos clasificar a las funciones miembro de la siguiente manera:

Funciones Set: Acceden a los datos miembros de la clase y les asignan un valor. La ventaja de que sea una función propia de la clase la única que permita al cliente establecer datos miembros, es que en general se implementará en la clase controles para que sólopuedan establecerse datos miembros válidos.
En la clase anterior las funciones Set, eran: establecerTitulo, establecerPaginas, y establecerCodigo.
Funciones GET: Las funciones Get, obtienen los valores de los datos miembro. Podrían preformatear la salida de los datos de diferentes maneras según sea conveniente. En la clase anterior nuestra función Get, era: imprime().
Funciones predicado: Verificanla falsedad o veracidad de una condición. Ejemplo, en nuestra clase Libro podríamos tener una función miembro llamada hayStock, que devolvería true si el número de stock es mayor que cero y false si es menor que cero.
Funciones de utilidad: No estan bajo la etiqueta public, por lo que un cliente no podría tener acceso a ellas directamente, sin embargo son de utilidad para otras funciones...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS