Práctica 5 Funciones constructoras y destructoras

Anuncio
Fecha de efectividad: _______________
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)
DOCUMENTO DEL SISTEMA DE CALIDAD
Formatos para prácticas de laboratorio
CARRERA
PLAN DE
ESTUDIO
CLAVE
ASIGNATURA
NOMBRE DE LA ASIGNATURA
Ing. En
Mecatrónica
2009-2
11892
Programación Orientada a Objetos
PRÁCTICA
No.
LABORATORIO
DE
Ingeniero en Mecatrónica
DURACIÓN
(HORA)
5
NOMBRE DE
LA PRÁCTICA
Funciones Constructoras y Destructoras
2
1. INTRODUCCIÓN
En la programación orientada a objetos, es de gran utilidad el uso de las funciones
constructoras y destructoras ya sea para inicializar un valor al crear el objeto o para destruir el
objeto y liberar memoria o eliminación de datos.
2. OBJETIVO (COMPETENCIA)
El alumno conocerá y aplicará las funciones constructoras y destructoras tanto para la
inicialización automática de acciones en los objetos así como la terminación automática de un
objeto, aplicándolo en el desarrollo de programas mediante el uso del lenguaje C++ .
3. FUNDAMENTO
Funciones Constructoras
En los programas hay partes que requieren inicialización. Esta necesidad de
inicialización es incluso más común cuando se está trabajando con objetos. Para tratar esta
situación, C++ permite incluir una función constructora. A estas funciones se les llama
automáticamente cada vez que se crea un objeto de esa clase.
La función constructora debe tener el mismo nombre que la clase de la que es parte, no
tienen tipo devuelto, es ilegal que un constructor tenga un tipo devuelto. Pero si es posible
pasarle valores a modo de parámetros. La función constructora es invocada automáticamente
cuando se crea (instancia) un objeto de dicha clase.
Formuló
LSC. Natalia
Rodríguez Castellón
Maestro
Revisó
Aprobó
M. I. Jesús Armando
Cantú Cárdenas
Coordinador de la
carrera de Ingeniería
Mecatrónica
Autorizó
Dr. Maximiliano De
Las Fuentes Lara
Gestión de Calidad
Director de la Facultad
Código GC-N4-017
Revisión 1
Página 1 de 6
Fecha de efectividad: ______________________
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)
DOCUMENTO DEL SISTEMA DE CALIDAD
Formatos para prácticas de laboratorio
Al declarar un objeto de una clase, es posible indicar inicializadotes entre paréntesis a la
derecha del nombre del objeto y antes del punto y coma. Estos inicializadotes se pasan como
parámetros al constructor de la clase.
Prototipo de la función:
nombre_función(parámetros);
Desarrollo de la función:
nombre_clase::nombre_función(parámetros){
cuerpo;
}
EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class miclase{
int a;
public:
miclase();
//function constructora
void show();
};
miclase::miclase()
{
a=100;
}
void miclase::show()
{
cout << a;
}
void main()
{
clrscr();
miclase obj;
obj.show();
getch();
}
Código GC-N4-017
Revisión 1
Página 2 de 6
Fecha de efectividad: ______________________
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)
DOCUMENTO DEL SISTEMA DE CALIDAD
Formatos para prácticas de laboratorio
Constructoras con Parámetros:
Es posible pasar argumentos a una función constructora. Para permitir esto, simplemente
añada los parámetros a la declaración y definición de la función constructora. Después, cuando
declare un objeto, especifique los parámetros como argumentos. Aunque en el programa no se
llama explícitamente a las funciones constructoras, pueden proveer información que se le pasa
como argumento a los constructores.
EJEMPLO:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class miclase{
int a;
public:
miclase(int x);
void mostrar();
};
miclase::miclase(int x)
{
cout << "Constructor";
a=x;
}
void miclase::show()
{
cout <<"El valor de a es: ";
cout << a;
}
void main()
{
miclase objeto(4);
objeto.show();
getch();
}
Código GC-N4-017
Revisión 1
Página 3 de 6
Fecha de efectividad: ______________________
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)
DOCUMENTO DEL SISTEMA DE CALIDAD
Formatos para prácticas de laboratorio
Funciones Destructoras
El complemento de un constructor es la función destructora. A esta función se le llama
automáticamente cuando se destruye el objeto. El nombre de las funciones destructoras debe
ser el mismo que el de la clase a la que pertenece precedido del carácter ~ .Los objetos se
destruyen cuando se salen de ámbito cuando son locales, y al salir del programa si son
globales. Las funciones destructoras no devuelven valor y tampoco pueden recibir parámetros.
El uso mas apropiado de las funciones destructoras es para liberar memoria, esto es cuando se
esta trabajando con estructuras de memoria dinámica.
Prototipo de la Función:
~nombre_función();
Desarrollo de la Función:
nombre_clase::nombre_función(){
cuerpo;
}
EJEMPLO: Mismo programa de antes añadiendo una función destructora.
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
class miclase{
int a;
public:
miclase();
~miclase(); //Esta es la función Destructora
void show();
};
miclase::miclase()
{
a=100;
}
miclase::~miclase()
{
cout << "Destruyendo...\n";
getch();
}
Código GC-N4-017
Revisión 1
Página 4 de 6
Fecha de efectividad: ______________________
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)
DOCUMENTO DEL SISTEMA DE CALIDAD
Formatos para prácticas de laboratorio
void miclase::show()
{
cout << a;
}
void main()
{
clrscr();
miclase obj;
obj.show();
getch();
}
4. PROCEDIMIENTO (DESCRIPCIÓN)
A)
EQUIPO NECESARIO
Computadora con editor turbo C++ instalado
MATERIAL DE APOYO
Práctica impresa
B)
DESARROLLO DE LA PRÁCTICA
1.- Crear un programa que cree la clase Rectángulo, que tenga los atributos base y altura y
que sean inicializados en 1 y 2 en el constructor. También incluir funciones miembro que
calculen el área y el perímetro, y por ultimo incluir su función destructora.
2.- Crear un programa que cree la clase Círculo, que tenga los atributos radio y pi, de tal forma
que en el constructor inicialice el valor de pi, incluir funciones miembro para capturar el valor
del radio, otra para calcular el área y finalmente el destructor.
3.- Crear un programa que cree la clase Triángulo que tenga los atributos base y altura,
incluyendo un constructor para iniciar los valores recibiéndolos como parámetros, agregar una
función miembro para calcular y mostrar el área del triángulo.
4.- Crear un programa que cree la clase Cuadrado, que tenga el atributo lado y que sea
inicializado en 5 en el constructor. También incluir funciones miembro que calculen el área y el
perímetro, y por último incluir su función destructora.
5.- Crear un programa que cree la clase Cilindro que tenga los atributos radio y altura,
incluyendo un constructor para iniciar el valor de pi, agregar la función miembro para capturar el
radio y otra para calcular y mostrar el volumen del cilindro y por último incluir una función
destructora para verificar en que momento se destruye el objeto.
Código GC-N4-017
Revisión 1
Página 5 de 6
Fecha de efectividad: ______________________
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
FACULTAD DE INGENIERÍA (UNIDAD MEXICALI)
DOCUMENTO DEL SISTEMA DE CALIDAD
Formatos para prácticas de laboratorio
6.- Crear un programa que cree la clase Cilindro que tenga los atributos radio y altura,
incluyendo un constructor para enviar como parámetros el valor del radio y el valor de pi dada
una constante definida en el programa principal, agregar la función miembro para calcular y
mostrar el volumen del cilindro y por ultimo incluir una función destructora para verificar en que
momento se destruye el objeto.
C)
CÁLCULOS Y REPORTE
Se revisarán los programas haciendo pruebas 1 o más veces.
5. RESULTADOS Y CONCLUSIONES
El alumno será capaz de elaborar programas orientados a objetos utilizando funciones
constructoras y destructoras.
6. ANEXOS
Ninguno
7. REFERENCIAS
Como Programar en C++, Deitel & Deitel, Prentice Hall
Código GC-N4-017
Revisión 1
Página 6 de 6
Descargar