Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

AYUDA!!!!!Muy IMPORTANTE!!!

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: AYUDA!!!!!Muy IMPORTANTE!!! Responder citando

Hola a todos!!

Alguien puede decirme dónde tengo que declarar un array 2D(dentro del .cpp o del .h??) para que si modifico su valor con un método en un módulo, ese mismo array pueda utilizarlo desde otro módulo distinto ....por ejemplo, en otra función que tenga que ver el último valor con el que se modificó?


Sé que si lo declaro en el .cpp, es global a ese módulo y ningún otro módulo puede verlo,............. pero entonces si lo declaro en el .h, al querer ver el array desde otro módulo distinto, no veo la modificación que se realizó...........entendéis?, como lo que incluyo en cualquier módulo en el .h( #include modulo.h) el valor que tiene ese array es nulo.


AYUDA!!!!!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

creo que lo siguiente no es cierto:

Sé que si lo declaro en el .cpp, es global a ese módulo y ningún otro módulo puede verlo,.............

tecnicamente si puede verse global a la aplicacion.
Volver arriba
Mensaje    Asunto: Responder citando

ferpb escribió:
creo que lo siguiente no es cierto:

Sé que si lo declaro en el .cpp, es global a ese módulo y ningún otro módulo puede verlo,.............

tecnicamente si puede verse global a la aplicacion.



Entonces porqué no deja acceder a esa variable desde otro módulo?.
Tiene algo que ver con el uso de "EXTERN"?
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

habitualmente no uso variables globales, sino que accedo a traves de métodos publicos a propiedades locales, (que te puede evitar retocar toda la aplicacion si decides cambiar la estructura de datos).

creo que tienes que #include "fichero.h" del .cpp que contiene tu vble global en el modulo desde el que quieres acceder.
Creo que tambien tienes que declarar como extern la variable global que deseas utilizar. como extern en el fichero que la coge, no en el que la declaras.

si usas el buscador y pones ambito en la casilla de buscar hay un par de topics que te pueden aclarar algo. Evil or Very Mad
Volver arriba
Mensaje    Asunto: Responder citando

Si DEFINES un objeto dentro del .cpp (que es donde debe ir) y fuera de cualquier otro ambito en el .cpp, ese elemento es local al archivo, para que lo puedas utilizar fuera de ese .cpp, debes DECLARAR dicho objeto en el .h con la palabra reservada extern e incluir dicho .h en los modulos donde necesitaras hacer referencia a dicho objeto, observa la forma en que se utiliza el objeto Fom1 cuando inicias una nueva aplicación. no hagas caso a la palabra reservada PACKAGE.

WinMan[/code]
Volver arriba
Mensaje    Asunto: Hola Responder citando

Hola, lo que necesitas es que tu array sea reconocido en varias unidades? si es asi, puedes hacerlo incluyendo la palabara reservada extern antes de la declaracion, como asi¡?, pues asi:

Código:

//por ejemplo declara esto en  l1.cpp
 int array[20];
//ahora si quieres acceder a el desde otro modulo .cpp,
//teniedo en cuenta que este pudo ser modificado por el modulo l1.cpp
//simplemente haces:
extern int array[20];


y listo ahi lo tienes, con los valores que tenga en cualquier instante dado.

Chaolin,

Espero que te sirva

"Estaremos en contacto".
Volver arriba
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.