• Domingo 22 de Diciembre de 2024, 23:02

Autor Tema:  ¿como Reservar Memoria Para Atributo Private...  (Leído 1834 veces)

bandro

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
¿como Reservar Memoria Para Atributo Private...
« en: Miércoles 9 de Junio de 2004, 18:54 »
0
Hola a todos...

A ver si me podian ayudar con esto...pues soy bastante novato en la programacion orientada a objetos y no tengo claro como se haria esto...mis ideas son estas dos:

tengo por ejemplo este atributo
 
private:

      int *enteros

public :

      int get_enteros() { return enteros; }
      int get_enteros(int i) { return enteros; }
      set_enteros(int *datos) { enteros = datos; }
      set_enteros(int *dato, int i) { enteros = dato; }

y ahora vienen mis dos opciones

1) hacer un metodo para la reserva de memoria

      void reservar_enteros(int i) { enteros = new int; }

2) hacer en la funcion donde se reserva la memoria algo asi

      int *puntero_aux;

      puntero_aux = new int[lo_que_sea];
      set_enteros(puntero_aux);

Vamos, que las dos digo yo q funcionarían pero me gustaria saber vuestra opinion de ver cual es mas correcta...
Saludos y gracias por adelantado
 :hola:

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: ¿como Reservar Memoria Para Atributo Private...
« Respuesta #1 en: Miércoles 9 de Junio de 2004, 20:48 »
0
Hola!!!!!!

El metodo q reserva memoria puede no funcionar bien si hubo un problema al alocar, por lo q este deberia devolver algun tipo de error (un int, un char, lo q vos quieras q represente tu posible error).

Algo asi:

Código: Text
  1.  
  2. char* str = new char[TAMANIO_X];
  3. if (str == NULL)
  4.   return ERROR_MEMORIA;
  5. return OK;
  6.  
  7.  

Salu2!!!!!!

bandro

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: ¿como Reservar Memoria Para Atributo Private...
« Respuesta #2 en: Jueves 10 de Junio de 2004, 00:01 »
0
Tonces opcion 1 o opcion 2??

QliX=D!

  • Miembro MUY activo
  • ***
  • Mensajes: 214
    • Ver Perfil
Re: ¿como Reservar Memoria Para Atributo Private...
« Respuesta #3 en: Viernes 11 de Junio de 2004, 07:05 »
0
Pues, conceptualmente mis queridisimos amigos, los dos metodos estan mal.
En C++ los objetos tienen constructores, que no son mas que metodos con el mismo nombre que la clase (exactamente el mismo) y que sirven exactamente para eso, para crear y setear todas las variables internas de una clase (o sea las privadas).
Despues para eliminar esa memoria existen los destructores, que son tambien metodos con el mismo nombre que la clase, pero con un ñiflo (~) adelante del mismo.

Pero bueno, fijate que en el tutorial (o curso) que estes haciendo, en los apuntes habla sobre los mismos para uqe te quites todas las dudas, si no , google es tu mejor amigo :D
Es muy largo el tema para tratarlo todo a estas horas de la noche (2:04)

Saludos.
QliX=D! - From the top of Tsunami

bandro

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: ¿como Reservar Memoria Para Atributo Private...
« Respuesta #4 en: Lunes 14 de Junio de 2004, 12:32 »
0
Sí, todo el tema de constructores y destructores ya lo conozco...pero eso es valido si tienes claro toda la memoria que necesitas cuando se crea el objeto de la clase...yo lo que necesito es primero crear el objeto y luego a partir de una serie de tareas q realizo ya se la memoria que necesito...asi q no me vale reservar en el constructor...

nicokiki

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: ¿como Reservar Memoria Para Atributo Private...
« Respuesta #5 en: Sábado 19 de Junio de 2004, 05:13 »
0
Hola Bandro!

Antes q nada queria aclarar que no habia entendido la 1º pregunta y lo que dice QliX=D! es totalmente verdadero. Yo cometi una animalada.

Bandro, vos en el constructor alocas la memoria que necesitas. Si queres alocar algo de acuerdo a lo q vayas a necesitar, pasale el tamaño por paramtero al constructor y listo


Salu2!!!!!