C/Visual C - Atributos de la clase que son punteros

 
Vista:

Atributos de la clase que son punteros

Publicado por carlos (1 intervención) el 03/06/2003 10:13:33
Me han pasado un código en C++. Declara algunos atributos de la clase como punteros a objetos. En vez de punteros podría haber usado el objeto directamente. ¿No debe evitarse el uso de punteros en este caso si se puede dar el mismo uso usando el objeto directamente, y así no te tienes que preocupar del delete y de posibles problemas de memoria?
Gracias.
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:Atributos de la clase que son punteros

Publicado por Oliver++ (339 intervenciones) el 03/06/2003 14:26:14
Mi respuesta es NO.

1. Puedes ahorrarte una increible cantidad de memoria con punteros, mas si son punteros a instancias de objetos, es como usar parámetros por referencias, te ahorras un montón de stack.

2. Hay ocaciones en que el uso de asignación dinámica de memoria es obligatorio, de manera que no tienes otra alternativa que usarla, y si la usas debes liberar con delete.

3. Será mejor que te vallas acostumbrando a que delete no debe ser una preocupación, ya que usar el uso del heap aumenta la eficiencia de tu programa a cambio de algo de complejidad y C++ no tiene recolector de basura.
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:Atributos de la clase que son punteros

Publicado por chuidiang (677 intervenciones) el 03/06/2003 22:42:58
El uso de objetos directamente o punteros depende de qué tengas ahí dentro.

Si en el constructor de la clase que contiene los atributos (vamos a llamarla contenedor) haces los new de los atributos, en el destructor haces los delete y no hay ninguna posibilidad de cambiar esos atributos de unas instancias por otras, efectivamente sería mejor usar directamente la clase y no los punteros, solamente por simplicidad, sin ningún otro motivo a favor o en contra.

Si en la vida de contenedor es posible que esos atributos no existan, que se cambien sobre la marcha (haciendo deletes y news, que te los pasen desde fuera como punteros a través de algún método) o son atributos comunes a varios objetos, pues es mejor punteros.

Se bueno.
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