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

Ayuda gestion de memoria y punteros a objetos en clase matriz

Estas en el tema de Ayuda gestion de memoria y punteros a objetos en clase matriz en el foro de C/C++ en Foros del Web. Hola, soy bastante nuevo programando en C++ y agradecería que alguien me aclarara ciertas dudas transcendentales en relación a la gestión de memoria. He desarrollado ...
  #1 (permalink)  
Antiguo 06/12/2008, 08:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 1
Antigüedad: 15 años, 4 meses
Puntos: 0
Ayuda gestion de memoria y punteros a objetos en clase matriz

Hola, soy bastante nuevo programando en C++ y agradecería que alguien me aclarara ciertas dudas transcendentales en relación a la gestión de memoria. He desarrollado una clase matriz (que maneja grandes dimensiones) para efectuar cálculos matemáticos y tengo varias dudas:

Si en el programa principal hago uso de la clase, por ej:
Código HTML:
Matriz<double> X(50000,2000)
,y una vez que ya no me es útil invoco al destructor:
Código HTML:
 X.~Matriz()
, obtengo un error, pues al final del programa se invoca, de nuevo, de oficio al destructor. ¿Hay alguna manera de evitar esto? Esto mismo me ocurre con una función no miembro que me almacena los datos de una matriz de 2 dimensiones en otra de 3 (que es otra clase) en la que paso por referencia la matriz 2D e intento destruirla al final, pues ya no me es útil.

Y, ya que pregunto, me gustaría que alguien me aclarara si, en lugar de emplear directamente el objeto matriz, podría emplear un puntero a matriz, que puedo destruir con delete. De ser así, ¿emplearía menos memoria?¿cómo puedo trabajar con el puntero?. Por ejemplo, para la clase matriz tengo el operador () para asignar un valor en la posicición (i,j) :

Código HTML:
T& operator () (int i,int j){return *(v+i+j*iRows);};
donde : T es el Typename del valor a asignar, *v contiene los elementos del objeto matriz (que por eficiencia se almacenan en un vector), i y j son el número de fila i columna objetivos, y iRows el número de filas del objeto.

Muchas gracias
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 10:08.