Wednesday, December 07, 2005

Caracteristicas Adicionales De La Clase.

Alcanse de una clase

Para las variables locales este alcanse es definido por cualquier bloque que se alle dentro de un par de llaves,{}. Esto incluye el cuerpo completo de la funcion y cualesquiera sub-bloques internos. Ademas, todos los parámetros de una funcion se consederan como variables locales de funcion. Las varibles globales son accesibles desde el punto de su declaracion y a travez de la porcion restante del archivo que los contiene, con tres excepciones:
1.*-Si una varible local tienen el mismo nombre que un global, esta ultima solo puede accesarse dentro del alcanse de la variable local al utilizar el operador de alcanse de resolucion,::.
2.*-El alcanse de un varible global puede extenderse a otro archivo mediante la palabra clave extern.
3.*-Al utilizar la palabra clave static el mismo nombre global puede volverse a usar en otro archivo para definir una variable separada y distinta. Las variables y globales static son desconocidas fuera de su archivo inmediato.

Este ejemplo muestra el alcanse de las varibles y funciones para las siguientes declaraciones.
Flota tasa; //global
// Declaracion de la clase

Class prueba
{
Private:
Flota cantidad, precio, total; //alcanse de clase
Public:
Flota extend(flota,float);//alcanse de clase
};

Mienbros De Clase Tipo Static

Al crear cada objeto class este obtiene su propio bloque de memoria para los miembros de datos.
Este tipo de situación se maneja en C++ al declarar que una varible de clase es del tipo static. Los miembros de datos de la clase tipo static comparten el mismo espacio de almacenaje para todos los objetos de la clase; como tales; actuan como varibles globales para la clase y proporcionan un medio de comunicación entre los objetos.
C++ requiere que las varib;les tipo static sean declaradas como tales dentro de laseccion declaratoria de la clase.

Por ejemplo suponga la declaracion de la clase.
//declaracion de la clase
Class empleado
{
Private:
Static flota tasa_imp;
Int num_id;
Public:
Empleado(int);//constructor
Void pantalla();
};

Funciones Amigas.

El procedimiento para proporcionar este acceso externo es bastante sencillo: la clase mantiene su propia lista aprobada de funciones que no son miembros pero les otorga los mismos privilegios que las funciones miembro. Las funciones que en la lista no son miembros se llaman funciones amigas y la lista se conoce como lista de amistades. Cualquier funcion que intenta tener acceso a los miembros de datos privados de un objeto primero revisa la lista de amistades: si la funcion esta en la lista de accesose aprueba, de otra manera el acceso se niega. Desde el punto de vista de codificacion, la lista de amistades es sencillamente un conjunto de declaraciones de prototipos de funcion antecedidos con la palabra clave friend e incluida en la seccion declaratoria de la clase.

No comments: