Documente Academic
Documente Profesional
Documente Cultură
CONSTRUCTORES
DESTRUCTORES
Constructores
Constructores
De Oficio Especfico
De Copia
Constructor de Oficio
: : : : :
Constructor: De Oficio
En C++: En forma implcita: Fraccion f;
explcita: Fraccion *f= new Fraccion()
f:
f:
0 0 0 0
Constructor:
1.- Por Defecto: Este constructor NO contiene parmetros y, su cdigo lee valores y/o los asigna a las varibales miembros C++
class Fraccion {
private: int num; int den; public: Fraccion(); : }; Fraccion::Fraccion() { num=0; den=1;
Constructor:
2.- Con Parmetros: Este constructor contiene parmetros y los asigna a las varibales miembros
class Fraccion { private: int num; int den; public: Fraccion(int, int); : }; Fraccion::Fraccion(int n, int d) { num=n; den=d; }
Ejemplo
1.2.3.-
Fraccion f(5,3);
Fraccion f= Fraccion(5,3); Fraccion *g; g=new Fraccion(2,5);
4.-
Fraccion V[100];
Ejemplo
Definicin de la clase Alumno con dos constructores especficos
class Alumno{ private: char nom[25]; int carrera; int ingreso; public: Alumno(); Alumno(char *n, int c, int a); void Asigna_nom(char x[]); void Asigna_carrera(int c); void Asigna_ingreso(int i); void Listar(); char * Obtener_nom(); int Obtener_carrera(); int Obtener_ingreso(); };
10
Ejemplo
Implementacin de constructores especficos para la clase Alumno:
Alumno::Alumno(){ strcpy(nom,NULL); ingreso=2005; carrera=511; } Alumno::Alumno(char *n, int c, int a){ strcpy(nom,n); ingreso=a; carrera=c; } void Alumno::Asigna_nom(char x[]){ strcpy(nom,x); } : :
11
Ejemplo
Uso de la clase Alumno:
#include <iostream.h> #include "CAlumno1.h" #include "IAlumnos1.h" void main(){ char nombre[25]; int carr; int ao; cout<<"Ingrese nombre del alumno"; cin.getline(nombre,80);
12
Constructor de Copia
Uso Permite crear objetos inicializndolo a partir de otro objeto de la misma clase.
El compilador proporciona uno de oficio. Este constructor efecta una COPIA bit a bit de las variables miembro del objeto original a objeto destino.
13
Constructor de Copia
Ejemplos de uso
1.- Fraccion f(2,5); Fraccion g=f;
2.- Fraccion h(f);
f:
2 5
g:
2 5
3.- Un objeto es el valor de retorno de una funcin: Fraccion Fraccion::Suma(Fraccion &f) { Fraccin c; ... return c; }
14
Constructor de Copia
Implementacin Este constructor tiene SLO un argumento que es una referencia constante a un objeto de la clase.
15
Constructor de Copia
class Alumno{ private: char *nom; int carrera; int ingreso; public: Alumno(); Alumno(char *n, int c, int a); Alumno(const Alumno&); void Asigna_nom(char x[]); void Asigna_carrera(int c); void Asigna_ingreso(int i); void Listar(); char * Obtener_nom(); int Obtener_carrera(); int Obtener_ingreso(); };
16
Constructor de Copia
Alumno::Alumno(){ nom= new char[25]; strcpy(nom,NULL); ingreso=2005; carrera=2141; } Alumno::Alumno(char *n, int c, int a){ nom= new char[25]; strcpy(nom,n); ingreso=a; carrera=c; } Alumno::Alumno(const Alumno &x){ nom= new char[25]; strcpy(nom,x.nom); ingreso=x.ingreso; carrera=x.carrera; }
17
Inicializadores
Utilizados en los constructores Son ms eficientes que las asignaciones dentro del cdigo de un constructor. Son de gran utilidad : Para inicializar objetos contantes. En clases derivadas
18
DESTRUCTORES
19
Destructores
Mtodo complemento de los constructores No posee valor de retorno NO puede sobrecargarse, es nico
No posee argumentos. Tiene el mismo nombre de la clase con un tilde como prefijo:
~Clase ();
Clase::~Clase () { : }
20
Destructores
21
Tarea