C/Visual C - Memoria dinámica

   
Vista:

Memoria dinámica

Publicado por Master of Puppets (1 intervención) el 31/08/2008 08:26:55
Me plantearon un problema que dice así:

Implemente una clase que contenga como atributo privado N mediciones de temperatura y además que contenga y defina las siguientes funciones miembro:

1) void LeeDatos( ); //Lee las N mediciones de manera dinámica (asignación dinámica de memoria).
2) float Promedio( ); //Regresa el promedio de las N mediciones
3) float LecturaMayor( ); //Regresa la medición del valor más grande

Según yo, la clase quedaría así:

class Temperatura
{
private:
int N;
public:
void LeeDatos( );
float Promedio( );
float LecturaMayor( );
};

Lo que no tengo idea es cómo leer los datos de manera dinámica, sólo se que es con los operadores new y delete. Alguien me puede explicar eso por favor?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Memoria dinámica

Publicado por Tom (475 intervenciones) el 02/09/2008 18:11:30
Empieza desde el principio:

http://www.geocities.com/siliconvalley/network/4846/Tutoriales/CPP/Cpp.htm
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Memoria dinámica

Publicado por chema (8 intervenciones) el 02/10/2008 19:47:35
para empezar, N no es un entero así solo, sino arreglo(vector) de N mediciones.
La memoria dinamica se utiliza através de punteros usando new.
La clase quedaría asÍ:

class Temperatura
{int *N
public:
Temperatura(int Size){N=new int[Size]};
/*Este es un constructor de la clase, que sirve para asignar memoria a un numero de Temperaturas que vas a leer desde el teclado,y posteriormente cuando declares el objeto le mandes como parametro la variable que leíste, y crea un arreglo, de N temperaturas, a esto se le llama "asignación de memoria dinámica".*/

void LeeDatos();
float Promedio();
float LecturaMayor();
~Temperatura(){delete N} /*Este es el destructor de la clase que libera el espacio
que reservaste para el arreglo*/
};

Ahora la función main quedaría así

main(){
int NMed;
cout<<"Teclee el numero de mediciones a leer: ";
cin>>Nmed;

Temperatura Temp(Nmed); /* Aqui se declara el objeto Temp y le mandamos al
constructor del numero de mediciones
que haremos*/
/*Tambien podría ser:
Temperatura Temp(5); o el numero de mediciones que quieras/*
}

Por las demás funciones, el arreglo lo manejas como cualquier otro.

Espero que te sirva.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar