Vous êtes sur la page 1sur 10

P.O.O.

POO 301 y 303

Ing. Héctor Julio Fúquene Ardila M.Sc.


UD-TSD-FT (week 3)
Funciones constructoras y destructoras

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


Problema
• Si POO me dice que no inicialice las variables en bloque private,
entonces en donde lo hago? //int x;
• Cómo hago para crear arreglos dinámicos?
• Int x=0; //Es fundamental en campos de resultado

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


Constructores y destructores
• Constructores • Destructores
• Es una función(método) • Es una función(método)
• Tiene el mismo nombre de la clase • Tiene el mismo nombre de la clase
(~)
• Se declara, se define, No se… • Se declara, se define, No se…
• Es la primer en ejecutarse • Es la última en ejecutarse
• Puede tener parámetros • No tiene parámetros
• No retorna valor • No retorna valor
• Se ejecuta al declarar el objeto •S
• Se utiliza para inicializar las variables •S
• Se utiliza para asignar memoria • Se utiliza para liberar memoria
dinámica dinámica

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


Constructores y Destructores (2)
• Numeros::Numeros()
• class Numeros{
• {
• private:
• cout<<“ \n Construyendo números”<<endl;
• int a[10], b[10],aux,i,j;
• aux=pr=i=j=0;
• public: • for(i=0;i<10;i++){
• Numeros(); • a[i]=0;
• ~Numeros(); b[i]=0;}
• void Entrada(void); • }
• void Proceso(void); • Numeros::~Numeros()
• void Salida(void); • {
• }; • cout<<“ \n Destruyendo números”<<endl;
• cout<<“No construí memoria dinámica”<<endl;
• } //txt

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


UD-TSD-FT

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


UD-TSD-FT

UD-TSD-FT

Memoria dinámica

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


Asignación de memoria dinámica
• Arreglos estáticos (int a[10];) Vs • class Numeros{
Arreglos dinámicos (int *a;) • private:
• Consiste en permitir construir • int *a, *b,aux,i,j,n;
‘arreglos’ en tiempo de ejecución. • public:
• La asignación se hace en el • Numeros();
constructor • ~Numeros();
• La liberación se hace en el • void Entrada(void);
destructor • void Proceso(void);
• Se debe utilizar apuntadores (*, &) • void Salida(void);
• Se utilizan los operadores new y • };
delete
Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.
Memoria dinámica


Numeros::Numeros()
{
• Numeros::~Numeros()


cout<<“ \n Construyendo números”<<endl;
aux=pr=i=j=n=0;
•{


cout<<“ \n Digite el tamaño del arreglo..”<<endl;
cin>>n;
• cout<<“ \n Destruyendo
• a=new int [n]; números”<<endl;

• delete a; //a,b deben se
if(a==NULL)
• cout<<“Error en asignación de memoria dinámica 1 …”<<endl;
• b=new int [n]; punteros
• if(b==NULL)
• cout<<“Error en asignación de memoria dinámica 2 … ”<<endl; • delete b;
• for(i=0;i<10;i++){
• a[i]=0; • } //txt
b[i]=0;}
• }

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


UD-TSD-FT 2020

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.


UD-TSD-FT

POO TSD

Ing. Héctor Julio Fúquene Ardila M.Sc. 2020 U. D.

Vous aimerez peut-être aussi