![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
nlsgarcia, no había visto tu mensaje anterior...Al parecer llegamos a la misma conclusión, pero ahora mi duda es, ¿no se supone que los objetos siempre se pasan por referencia, sin necesidad de utilizar var...?
Saludos y gracias por tu ayuda.. |
#2
|
||||
|
||||
doctorhd,
Cita:
![]() Cita:
![]() Nelson. |
#3
|
|||
|
|||
nlsgarcia, citando el mismo texto que me indicas...
Cita:
Cita:
Cita:
Saludos |
#4
|
||||
|
||||
doctorhd,
Cita:
![]() Cita:
Espero sea útil ![]() Nelson. |
#5
|
||||
|
||||
doctorhd:
Una cosa es un puntero a la instancia (referencia de objeto) y otra un puntero a una variable puntero a la instancia (referencia de variable objeto). Cuando el parámetro es "Var", estás pasando éste último. De lo contrario estás pasando el primero, copiándose ese puntero en el parámetro, el cual actúa como una simple variable objeto local. Si lo pones en Nil, sólo esa "variable" adquiere el valor de Nil; las demás variables (exteriores) que apunten a la misma instancia de objeto seguirán igual. Espero no haberte confundido. Saludos. ![]() |
#6
|
|||
|
|||
Gracias nlsgarcia y Al González por sus respuestas, me queda claro el origen del error.
Ahora a raíz del cambio indicado por ustedes, tengo el siguiente problema...(no se si sera necesario abrir un nuevo hilo) al llamar a la función: tengo el siguiente error: el cual indica que no puedo pasar una constante como parámetro a una función que requiere una variable, cuestión que no es cierta, ya que FDetail es un campo de una clase que a su vez también es una clase, aquí va la definición de ambas:
Saludos... |
#7
|
||||
|
||||
Podemos convenir que FDetail es una variable, concretamente un campo de una clase debidamente instanciada. Eso está bien, pero el "[FDetail]" que vemos en tu código es lo que formalmente se denomina un constructor de matriz abierta (open array constructor).
Ese término no se refiere a un método constructor, sino a una construcción gramatical que lleva corchetes con el propósito de formar una matriz "al vuelo". Al formarse esa matriz (array), cada uno de los elementos que contiene son considerados por el compilador como valores constantes (los punteros, no las instancias a las que apuntan). Por ello es que aparece el error que te da el compilador. Si lo que necesitas es crear una rutina que reciba una matriz abierta de "variables" objeto, piensa en esa matriz o vector como una lista de punteros. Cada puntero señalando a una variable objeto. Para intentar ilustrarlo, tomo la función ghFreeNil de GH Freebrary que realiza una tarea similar (por ser el ejemplo más cercano que tengo). ¿Agarras la onda? ![]() |
![]() |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
FreeAndNil VS Free | GerTorresM | OOP | 45 | 30-01-2012 01:54:24 |
Forms: FreeAndNil ó Release y la validación Assigned? | jbautista | Varios | 13 | 09-02-2010 17:33:03 |
Microsoft libera ASP .NET MVC | AzidRain | Noticias | 3 | 10-04-2009 19:06:52 |
Problemas FreeAndNil | OscarG | OOP | 4 | 09-11-2005 12:48:46 |
No libera la MEMORIA | pruz | Varios | 1 | 27-04-2004 21:30:33 |
![]() |
|