Objetos en Array

Objetos en Array

Postby rolando » Fri Oct 31, 2008 3:56 pm

Hola,

Tengo que pasar varias veces unos cuantos Objetos como referencia a una función en la que se refrescan estos objetos.

Mi consulta es: ¿Puedo guardar los objetos en un array y pasar ese array como referencia y luego, dentro de la función receptora del array, extraer los objetos del array para procesarlos?

Gracias.

Rolando :D
User avatar
rolando
 
Posts: 593
Joined: Sat May 12, 2007 11:47 am
Location: San Nicolás - BA - ARGENTINA

Re: Objetos en Array

Postby jose_murugosa » Fri Oct 31, 2008 5:21 pm

rolando wrote:Hola,

Tengo que pasar varias veces unos cuantos Objetos como referencia a una función en la que se refrescan estos objetos.

Mi consulta es: ¿Puedo guardar los objetos en un array y pasar ese array como referencia y luego, dentro de la función receptora del array, extraer los objetos del array para procesarlos?

Gracias.

Rolando :D


Si puede hacerse, también puedes declarar inicialmente un array que agrupe todos los objetos que utilices o la parte de ellos que sea necesario y referir los objetos por medio del array y su subíndice correspondiente

Declarando ese array como privado, static o public segun corresponda puedes evitar tener que pasarlo de una función a otra.

Hay muchas opciones.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby Antonio Linares » Fri Oct 31, 2008 5:50 pm

Rolando,

Los objetos al igual que los arrays, siempre se pasan por referencia de forma automática.

Un objeto en realidad es un array con un puntero interno a la clase a la que pertenece.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42079
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby jose_murugosa » Sat Nov 01, 2008 2:11 am

Antonio Linares wrote:Rolando,

Los objetos al igual que los arrays, siempre se pasan por referencia de forma automática.

Un objeto en realidad es un array con un puntero interno a la clase a la que pertenece.


Antonio, puedes explicarlo con un poco más de detalle, es algo que me interesa mucho entender....

Gracias desde ya por tu paciencia.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
jose_murugosa
 
Posts: 1180
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby Antonio Linares » Sat Nov 01, 2008 10:09 am

José,

Un array contiene y puede contener mucha información, por lo que no es práctico ir moviendo esa información de un sitio a otro. En vez de eso, lo que se pasa de un sitio a otro es su "dirección", es decir, en "donde está". A eso le decimos que se pasa por "referencia".

Clipper, para implementar los objetos, lo que hizo fué usar arrays, que son un "conjunto de datos" y dotarles de unos determinados comportamientos, definidos por la "clase" a la que pertenecen. Este modelo se implementó de igual forma en Harbour/xHarbour.

Para comprobar que un objeto es un array, puedes hacer:

MsgInfo( Len( ErrorNew() ) ) // ErrorNew() crea un objeto error.

De la misma forma puedes acceder a sus datos directamente, como si fuese un array:
Code: Select all  Expand view
oError = ErrorNew()

for n = 1 to Len( oError )
   MsgInfo( oError[ n ] )
next

Internamente al array se le ha asociado un "puntero" a su clase, asi se sabe como ha de comportarse al recibir determinados mensajes.

Si tienes alguna duda más, con gusto intentaré ayudar :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42079
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 50 guests