Título: Problema con arreglo y clases Publicado por: nolasco281 en 24 Abril 2014, 03:43 am Hola a todos como estan.
El problema que tengo es que no se como pasar un arreglo por medio de un constructor no si, se podra. la verdad. como pueden ver creo en el .h pero asi se pasa por medio del constructor? como digo no tengo idea de como hacerlo. tengo lo siguiente. Archivo de encabezado Código
Archivo de Implementacion Código
Gracias a todos por la ayuda. PD: se me olvidaba me salta el siquiente error y claro por que se que estoy haciendo algo mal en la forma de pasar el arreglo. Código
Título: Re: Problema con arreglo y clases Publicado por: eferion en 24 Abril 2014, 08:30 am Código
llegados a ese punto... que valor tiene "tamano"?? obviamente es desconocido, luego esa definición está, directamente, mal hecha. Código
Definir el arreglo de esta otra forma ya es otra cosa... además, queda claro que si el tamaño se puede modificar sobre la marcha, lo lógico es que el arreglo sea directamente dinámico, no?? si fuese de tamaño constante no tendría sentido la variable "tamano". Dado que el arreglo tienes que crearlo de forma dinámica, tendrás que usar "new" y "delete"... su uso no podía ser más simple: Código
En cualquier caso, debes fijarte en que, por su condición de arreglo, automáticamente pasas a usar punteros... cosa que no estás teniendo en cuenta ni en el constructor ni en "SetArreglo". Un comentario sobre el diseño: -------------------------- Vas a empezar a usar memoria dinámica en esta clase, tienes que tener, por tanto, muy claros los ciclos de vida de dicha memoria... dicho de otra forma: * Cuándo se va a reservar la memoria? * Cuándo deja de ser necesaria? * Quién se encarga de liberarla? Cada vez que tu llames a "SetArreglo", si no controlas bien el ciclo de vida, vas a dejar lagunas de memoria en el programa... y eso queda francamente feo. Además, deberías ir pensando en implementar el destructor. Lo más lógico es que "Arreglo" se encargue de la gestión de la memoria... es decir, si no le pasas un arreglo entonces el crea uno internamente con el tamaño pedido... cada vez que se llama a "SetArreglo" se ha de eliminar el arreglo anterior... y, por supuesto, si se destruye la instancia, se ha de liberar la memoria reservada por "arreglo". -------------------------- Un saludo. Título: Re: Problema con arreglo y clases Publicado por: nolasco281 en 24 Abril 2014, 09:45 am Hola primera mente gacias por contestar.
1. Eso quiere decir que debo declarar un puntero para apuntar a mi arreglo Código
y ese puntero es el que pasare como parametro al constructor y al metodo getArreglo. 2. La implementacion del arreglo la hare donde le valla a dar su tama~no no? por ejemplo: //Funcion para datos del arreglo Código
3. por ultimo el arreglo lo pasaria al constructor de esta forma? al igual en el setArreglo Código
Si tienes razon el arreglo debe de ser dinamico para poder pasarse, segun el leido en algunas partes, si se le dara un tama~no al arreglo Muchas gracias por contestar. PD:No he podido logralo por mi cuenta. Título: Re: Problema con arreglo y clases Publicado por: eferion en 24 Abril 2014, 09:56 am Código
Título: Re: Problema con arreglo y clases Publicado por: nolasco281 en 24 Abril 2014, 10:16 am 1. Entiendo el arreglo que se crea en el construstrutor lo destruye con el destructor no?
Código
Esta es la validacion que de la habla, esa parte la entendi Código
que tambien se podria hacer asi no Código
creo que entiendo, todo lo que has hecho pero si me surge una duda la hare saber ya que antes habia intentado hacer algo parecido pero casi no entendia como hacerlo, ahora se me hace un poco mas claro. Muchas gracias por la ayuda intentare sequir. Pd: Muchisimas gracias. Título: Re: Problema con arreglo y clases Publicado por: eferion en 24 Abril 2014, 10:27 am Tienes que tener en cuenta que, como has observado, el código que he puesto no hace ninguna comprobación que verifique que el arreglo es válido o que se especifica un tamaño válido.
Esta clase puede evolucionar bastante, pero eso ya depende de tus necesidades. Pd.: Si en vez de arreglos son clases, una forma sencilla de asegurarte de que te pasan valores válidos es hacer que la función trabaje por referencia... no se pueden pasar referencias no válidas salvo que se hagan chapuzas adrede: Código
Título: Re: Problema con arreglo y clases Publicado por: nolasco281 en 24 Abril 2014, 10:35 am ;-) simplemente
Mil gracias ha una ultima cosa en esta parte Código
es de ejecucion o de compilacion. ya que me dice Código
Pd: perdon creo que ya entendi : ) por que. o no. Gracias saludos Título: Re: Problema con arreglo y clases Publicado por: eferion en 24 Abril 2014, 10:40 am ;-) simplemente Mil gracias ha una ultima cosa en esta parte Código
es de ejecucion o de compilacion. ya que me dice Código
Gracias saludos cierto... me confundí de carácter... cosas de escribir desde el movil. Tendría que ser Func( *clase ); Título: Re: Problema con arreglo y clases Publicado por: nolasco281 en 24 Abril 2014, 10:45 am Gracias de nuevo por la ayuda por porcionada. y por el tiempo.
y entendi por que la salida es 111. Saludos y gracias. Pd:Gracias por los ejemplos tambien. saludos. Título: Re: Problema con arreglo y clases Publicado por: eferion en 24 Abril 2014, 10:51 am La salida da 111 porque devuelvo un valor constante... si accediese a miembros el resultado habría sido muy diferente.
A ver, esta versión si debería dar los problemas que comento... estoy con el movil y no puedo compilar. Si ves algún problema avísame. Código
Título: Re: Problema con arreglo y clases Publicado por: nolasco281 en 24 Abril 2014, 11:05 am efectiva mente se produce un error.
(http://4.bp.blogspot.com/-ZKypA5ZPmAk/U1jTugqYB8I/AAAAAAAAAr8/sxxqtffsHs8/s1600/Error.png) Y luego sique su ejecucion. |