Foros del Web » Programación para mayores de 30 ;) » C/C++ »

ayuca con destructor, clases c++

Estas en el tema de ayuca con destructor, clases c++ en el foro de C/C++ en Foros del Web. Hola.Miren tengo el siguiente programa en el cual me pide N numero de alumnos,de los cuales tiene que pedir tres calificaciones,nombre y boleta.El programa ya ...
  #1 (permalink)  
Antiguo 05/10/2011, 02:26
 
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico D.F
Mensajes: 10
Antigüedad: 12 años, 8 meses
Puntos: 0
ayuca con destructor, clases c++

Hola.Miren tengo el siguiente programa en el cual me pide N numero de alumnos,de los cuales tiene que pedir tres calificaciones,nombre y boleta.El programa ya esta hecho pero, lo que no se es que se debe poner en el destructor.Se que se debo poner delete pero ¿delete que? Gracias


#include <iostream>
#include <string>
#define n 3
using namespace std;

class calumno{
private:
double calif[n];
string nombre,boleta;


public:
calumno(double calif[n]);
~calumno();
void captura();
string capturacad(string msj);
double calculaprom();
void imprimir();
calumno();


};

calumno::calumno()
{
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?



}

string calumno::capturacad(string msj)
{
string texto;
fflush(stdin);
cout<<msj;
getline(cin,texto);
return texto;
}



void calumno::captura()
{

nombre=capturacad("Captura la nombre:");
boleta=capturacad("Captura boleta:");

for(int j=0;j<n;j++)
{
cout<<"Captura la calificacion "<<j+1<<":"<<endl;
cin>>calif[j];
}

}

double calumno::calculaprom()
{
float a=0;
int i;
for(i=0;i<n;i++)
{
a+=calif[i];
}
a=a/n;
return a;
}



void calumno::imprimir()
{

for(int z=0;z<n;z++)
{
cout<<"calificacion "<<z+1<<":"<<calif[z]<<endl;

}

cout<<"Promedio:"<<calculaprom()<<endl;
cout<<"Boleta:"<<boleta<<endl;
cout<<"Nombre:"<<nombre<<endl;

}

calumno::~calumno()

{
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?
AQUI ¿QUE ES LO QUE DEBO PONER?



}



int main()
{
int t;
calumno *aptro;

cout<<"Indica el numero de alumos:"<<endl;
cin>>t;
if(t>0&&t<=10)
{
aptro=new calumno[n];

for(int p=0;p<t;p++)
{

aptro->captura();


}

system("CLS");
for(int p=0;p<t;p++)
{
aptro->imprimir();

}

delete []aptro;
system("pause");
}

else{
cout<<"Error en la creacion de memoria dinamica"<<endl;
system("pause");
}
return 1;
}
  #2 (permalink)  
Antiguo 05/10/2011, 05:12
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: ayuca con destructor, clases c++

En el destructor deberias eliminar memoria que allas asignado dinamicamente y que realmente necesites liberarte.
Imagina uqe el constructor hace:
calumno::calumno()
{
salon = new Salon();
}

Cuando se destruya el objeto alumno, ese objeto salon que se creo quedara dando vuelta. Asi que en el constructor lo destruimos.:

calumno::~calumno()
{
delete salon;
}

Si no tienes esta clases de cosas, no hace falta hacer nada en el destructor.

Etiquetas: c++, clases, destructor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:50.