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

Reserva memoria dinámica

Estas en el tema de Reserva memoria dinámica en el foro de C/C++ en Foros del Web. Hola, buenas tardes a todos, espero que me seais de ayuda porque llevo un buen rato comiendome la cabeza con un warning que me lanza ...
  #1 (permalink)  
Antiguo 21/08/2007, 06:30
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 17 años, 4 meses
Puntos: 0
Reserva memoria dinámica

Hola, buenas tardes a todos, espero que me seais de ayuda porque llevo un buen rato comiendome la cabeza con un warning que me lanza al compilar:

g++ animal.cpp test1.cpp -o test1

El compilador es el g++ de GNU de Ubuntu 6.06

El problema viene a la hora de reservar memoria dinámica de un vector de 100 elementos del tipo Fecha que es una clase.
La reserva se hace en un constructor de la clase Animal.

El código sería de esta manera:

#include "animal.h"

using namespace std;

Animal::Animal(string _nombre, int _edad){

_revisionesMedicas = new Fecha [100];

}

Posteriormente hago un delete [] _revisionesMedicas en un destructor que va después de éste constructor.

En el archivo animal.h se declara la clase teniendo de miembro privado a Fecha * _revisionesMedicas y usando "guardas de inclusión" ifndef ANIMAL_H ...

¿Me pueden decir en qué falla mi reserva de memoria del vector?
  #2 (permalink)  
Antiguo 21/08/2007, 07:20
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 9 meses
Puntos: 22
Re: Reserva memoria dinámica

Hola aosuna.

Y cuál es el warning que te tira??

Por lo que comentas todo se ve bien, nada mas asegurate de tener definido el constructor por defecto en la clase Fecha ya que al hacer:
new Fecha[100];
Este será invocado 100 veces y si no está definido pues puede ser la causa.
Por otro lado asegurate de que la clase Fecha este declarada a la hora de estarla utilizando en tu clase Animal.

Saludos.
  #3 (permalink)  
Antiguo 21/08/2007, 07:20
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Re: Reserva memoria dinámica

¿qué error te muestra el compilador?

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #4 (permalink)  
Antiguo 21/08/2007, 11:06
 
Fecha de Ingreso: julio-2007
Mensajes: 14
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: Reserva memoria dinámica

Miren esto es lo que me lanza el compilador:

/tmp/ccYZHvBi.o: En funcion 'Animal::Animal(std::basic_string<char, std::char_traits<char>, std::allocatorzchar> <, int)': animal.cpp8.text+0x37): referencia a 'Fecha::Fecha()' sin definir

/tmp/ccYZHvBi.o: En funcion 'Animal::Animal(std::basic_string<char, std::char_traits<char>, std::allocatorzchar> <, int)': animal.cpp8.text+0x37): referencia a 'Fecha::Fecha()' sin definir

Sé que el std tiene que ver con el espacio de nombres y el tipo string pero en el main.cpp incluyo el using namespace std ...

La verdad no sé ya lo que probar
  #5 (permalink)  
Antiguo 22/08/2007, 09:05
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 5 meses
Puntos: 28
Re: Reserva memoria dinámica

Cita:
Iniciado por aosuna Ver Mensaje
Miren esto es lo que me lanza el compilador:

/tmp/ccYZHvBi.o: En funcion 'Animal::Animal(std::basic_string<char, std::char_traits<char>, std::allocatorzchar> <, int)': animal.cpp8.text+0x37): referencia a 'Fecha::Fecha()' sin definir

/tmp/ccYZHvBi.o: En funcion 'Animal::Animal(std::basic_string<char, std::char_traits<char>, std::allocatorzchar> <, int)': animal.cpp8.text+0x37): referencia a 'Fecha::Fecha()' sin definir

Sé que el std tiene que ver con el espacio de nombres y el tipo string pero en el main.cpp incluyo el using namespace std ...

La verdad no sé ya lo que probar
La std no tiene nada que ver con el error, el error es porque no tienes bien definida la clase fecha o al menos no la encuentra.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
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 22:21.