jueves, 6 de diciembre de 2012

La Herencia.


Es la capacidad de compartir atributos y métodos entre clases.
Es la propiedad que permite definir nuevas clases usando como  clases ya existentes.
La nueva clase (clase derivada) hereda los atributos y comportamiento que son específicos de
ella.



Evidentemente, la clase base y la clase derivada tienen código y datos comunes, de modo que si se crea la clase derivada de modo independiente, se duplicaría mucho de lo que ya se ha escrito para la clase base. C++ soporta el mecanismo de derivación que permite crear clases derivadas, de modo que la nueva clase hereda todos los datos miembro que pertenecen a la clase ya existente.

La declaración de derivación de clases debe incluir el nombre de la clase base de la que se deriva y el especificador de acceso que indica el tipo de herencia (pública, privada y protegida). La primera línea de cada declaración debe incluir la sintaxis siguiente:



Tipos de Herencia.


La relación de herencia entre clases puede ser: pública (public), privada (private) ó protegida (protected). La relación que se utiliza con  frecuencia es la pública.
Dependiendo del número de clases y de cómo se relacionen, la herencia puede ser:



a) Simple.
b) Múltiple.
c) De niveles múltiples.



Con independencia del tipo de herencia, una clase derivada no puede acceder a variables y funciones privadas de su clase base. Para ocultar los detalles de la clase base y de clases y funciones externas a la jerarquía de clases, una clase base utiliza normalmente elementos protegidos en lugar de elementos privados. Suponiendo herencia pública, los elementos protegidos son accesibles a las funciones miembro de todas las clases derivadas.


Herencia Simple.


Cuando sólo se tiene una clase base de la cual hereda la clase derivada, se dice que hay herencia simple. Sin embargo, la herencia simple no excluye la posibilidad de que de una misma clase base se pueda derivar más de una subclase o clase derivada .

Polimorfismo

En C++ es posible declarar dos funciones diferentes que tengan el mismo nombre. Las funciones deben diferir en la lista de argumentos, bien en el número de variables que se pasan a la función, bien en el tipo de argumentos que recibe. Así, por ejemplo, se puede definir una función que trabaje, bien con enteros, bien con strings; sólo hay que definir dos funciones separadas con el mismo nombre.

CLASES C++


Hay tres especificadores de acceso en C++: public, private y protected. Cuando usted declara público ( public) un miembro de una clase, usted permite el acceso a tal miembro desde dentro y fuera de la clase. Los miembros de datos que son declarados protegidos ( protected ) son únicamente accesibles por funciones miembro de la clase, pero no se pueden acceder a ellos desde otras clases. Cuando un miembro de una clase es declarado privado ( private ) es  ináccesible no sólo desde otras clases y otras partes del programa, sino también desde sus clases derivadas. Las clases derivadas se explicara posteriormente.

BUCLES C++


En programación, un bucle es un tipo de estructura de control que permite repetir una o más sentencias múltiples veces.

Los bucles son una evolución del JUMP en el lenguaje ensamblador o GOTO en los lenguajes de alto nivel.

Los bucles más generales en los lenguajes de programación son WHILE, FOR y REPEAT (estructuras de repetición).

Todos los bucles se ejecutan mientras se cumpla una determinada condición (ver condición simple ocondición compuesta), o sea, mientras esa condición sea verdadera, el bucle seguirá ejecutándose.

ESTRUCTURAS DE CONTROL


En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa.

Las estructuras de control de un lenguaje de programación se refieren a el orden en que las instrucciones de un algoritmo se ejecutarán. El orden de ejecución de las sentencias o instrucciones determinan el flujo de control. 

Estas estructuras de control son por consiguiente fundamentales en los lenguajes de programación y en los diseños de algoritmos especialmente los pseudocódigo. 

PILAS C++:


La pila es una estructura de datos que permite almacenar datos en el orden LIFO (Last In First Out) en español, último en entrar, primero en salir). 

La recuperación de los datos es hecha en el orden inverso de su inserción. 


Para la implementación he elegido una lista enlazada simple, presentada sobre la vertical. 
Ya que la inserción es siempre hecha al inicio de la lista, el 1er elemento de la lista será el ultimo elemento ingresado, por lo tanto estará en la cabeza de la pila. 
No he utilizado un puntero fin, como lo hice en el caso de la lista enlazada simple, ya que el objetivo no es el de tratar una lista enlazada, sino una pila
Lo interesante es que el ultimo elemento ingresado, será el 1er elemento recuperado. 

COLAS C++:


Una cola es un tipo especial de lista abierta en la que sólo se pueden insertar nodos en uno de los extremos de la lista y sólo se pueden eliminar nodos en el otro. Además, como sucede con las pilas, las escrituras de datos siempre son inserciones de nodos, y las lecturas siempre eliminan el nodo leído.
Este tipo de lista es conocido como lista FIFO (First In First Out), el primero en entrar es el primero en salir.
El símil cotidiano es una cola para comprar, por ejemplo, las entradas del cine. Los nuevos compradores sólo pueden colocarse al final de la cola, y sólo el primero de la cola puede comprar la entrada.