![]() |
Punteros
Hola amigos, estoy intentando hacer lo siguiente, tengo una classe mapa_de_bits, por ejemplo, y otra classe con un metodo modifica_mapa_bits, lo que estoy intentando realizar es crear 3 objectos que tienen el metodo modifica_mapa_bits, i pasarles un objeto mapa_de_bits para que estos me lo modifiquen, de manera que si uno me lo modifica, estos cambios se reflejen en totdos los demas.
Para ello he intentado utilizar punteros, pero no me ha ido muy bien, igualmente tendira que usar memoria compartida, no se, si alguien me podia dar unas nociones de como poder hacer esto mediante punteros, se lo agradeceria. Gracias. |
Hola:
No acabo de entender bien tu pregunta. Tienes 3 objetos con un método modifica_mapa_bits, supongo que heredan de una clase común, aunque esto es lo de menos. Cita:
|
Aclarare el concepto:
Código:
type tmapa_bits = class (TObject) |
Hola:
El código lo veo perfecto, los tres modificadores actúan sobre el mismo mapa_de_bits, por lo tanto no veo que se acceda a direcciones de memoria diferentes. ?¿ |
Soy novato en esto de Delphi, lo que me estas diciendo es que a los tres metodos les paso un puntero a la estructura, o se hace un paso por valor y no por referencia?
|
Hola:
Si tu inquietud gira en torno a eso, puedes estar tranquilo. Cualquier variable que declares del tipo Objeto (cualquier objeto) es en realidad un puntero, por lo que cuando pasas un objeto como parámetro a una Función / Procedure, sea por valor o por referencia, SIEMPRE pasas una referencia al objeto, con lo cual puedes manipularlo a tu antojo dentro de la función. En los tres casos que propones, se accederá al mismo objeto, el referenciado por la variable mapa_de_bits. |
Perfecto, pues esto funciona como Java, entonces si modifico la misma region de memoria tocarian reflejarse las modificaciones. Investigaré por que no me funciona, gracias por tu hayuda.
|
¿No te sería mas cómodo que moficica_mapa sea un método de tmapa_bits?...
|
Conceptualmente es mejor lo que tu dices, de todas maneras solamente era un ejemplo, esta claro que modifica mapa de bits utiliza metodos de tmapa. Ya que el que sabe como modificar el mapa es el "modificador". De todas maneras ya esta todo solucionado, al ser punteros a la misma zona.
|
La franja horaria es GMT +2. Ahora son las 07:08:18. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi