Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guía 6 1
Facultad: Ingeniería
Escuela: Computación
Asignatura: Programación II
Objetivo
Específico
• Conocer que es ligadura y sus tipos
• Entender el concepto de polimorfismo
• Utilizar las funciones virtuales para aplicar el polimorfismo
• Definir funciones virtuales.
Materiales y Equipo
• Computadora DevC++
• Guía Número 6
Introducción
Ligadura
Representa una conexión entre una entidad y sus propiedades. Si la propiedad se limita a
funciones, ligadura es la conexión entre la llamada a función y el código que se ejecuta tras la
llamada. Desde el punto de vista de atributos, la ligadura es el proceso de asociar un atributo a
un nombre.
Clasificación de la ligadura
Funciones Virtuales
Una función virtual es una función miembro pública o protegida de una clase base que puede
ser redefinida en cada una de las clases derivadas de esta, y una vez redefinida puede ser
accedida mediante un puntero o referencia a la clase base. Esta se declara colocando la
palabra clave virtual antes de la declaración de la función miembro perteneciente a la clase
base.
Polimorfismo
2 Programación II, Guía 6
La utilización de clase derivadas y funciones virtuales es frecuentemente denominada
programación orientada a objetos. Además, la facultad de llamar a una variedad de funciones
utilizando exactamente el mismo medio de acceso, proporcionada por funciones virtuales, es a
veces denominada polimorfismo. Polimorfismo significa “la facultad de asumir muchas formas”,
refiriéndose a la facultad de llamar a muchas funciones diferentes con una sola sentencia.
1. Crear una jerarquía de clases con las operaciones importantes definidas por las funciones
miembros declaradas como virtuales en la clase base.
2. Las implementaciones específicas de las funciones virtuales se deben hacer en las clases
derivadas. Cada clase derivada puede tener su propia versión de las funciones. Ejemplo, la
implementación de la función dibujar varia de una función a otra.
Resumen
En la siguiente práctica se pretende conocer los conceptos de ligadura, funciones
virtuales y polimorfismo para aplicarlo a los conceptos de Programación Orientada a
Objetos.
Procedimiento
#include <iostream>
#include <string.h>
#include <process.h>
using namespace std;
class Figuras{
public:
// Definiendo las funciones virtuales en la clase base
virtual void Calcular_Area();
Programación II. Guía 6 3
EJERCICIO No. 1
Agregar una nueva derivación de Figuras con la clase Rombo las propiedades que tendra
el rombo son diagonal mayor y diagonal menor, el área del rombo es
Área Rombo = (Diagonal Mayor * Diagonal Menor) / 2
int main(){
// Se crea un arreglo de objetos de la clase Figuras
Figuras *arreglobj[5];
// Ahora se creara crearan 5 objetos para luego ser utilizados por
// el arreglo de objetos
Rectangulo Rec1(15,15);
Rectangulo Rec2(20,20);
Triangulo Tri1(3,5);
Triangulo Tri2(2,6);
Triangulo Tri3(5,5);
// Cada objeto definido anteriormente será un elemento del el arreglo
// donde cada elemento es un puntero a un objeto Figuras aquí se utiliza
// el concepto de polimorfismo
// Se hace referencia a cada objeto creado
arreglobj[0] = &Rec1;
arreglobj[1] = &Rec2;
arreglobj[2] = &Tri1;
arreglobj[3] = &Tri2;
arreglobj[4] = &Tri3;
// Se calcularan las áreas, se Identificara cada objeto y se visualizará su
//información
for(int i=0;i<5;i++){
arreglobj[i]->Calcular_Area();
arreglobj[i]->Identificar();
arreglobj[i]->Dibujar_Figura();
cout << "----------------------------"<<endl;
system("PAUSE");
}
return 0;
Programación II. Guía 6 7
Nota: Un puntero a un objeto de la clase base puede ser utilizado para direccionar un
objeto de cualquiera de sus clases derivadas, lo cual permitirá invocar automáticamente a
través de este puntero a una función declarada virtual correspondiente a la clase del
objeto apuntado.
Investigación
Complementaria
Investigar
¿Qué es una plantilla de Clase y una plantilla de función?
¿Definir el concepto de Genericidad?
Biblioteca
Bibliografía
En Internet:
http://c.conclase.net/ :
http://www.dcp.com.ar/
8 Programación II, Guía 6
EVALUACION
ACTITUD
Del 15% No tiene Actitud Tiene actitud
al 30% actitud propositiva y proactiva y sus
proactiva con propuestas son
. propuestas no concretas.
aplicables al
contenido de
la guía.
TOTAL 100%