• Domingo 22 de Diciembre de 2024, 11:45

Autor Tema:  Crear Objetos Globales  (Leído 2608 veces)

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Crear Objetos Globales
« en: Domingo 13 de Agosto de 2006, 03:53 »
0
como se pueden crear objetos globales en C++


class Myclass()
{
 
 Funcion1();
 bla...
 bla...
}

Myclass::Myclass()
{
  //aqui constructor

}

Myclass::Funcion1()
{

 bla..bla..
}

main()
{

bla..bla..

 
}

la idea es crear el objeto de la clase Myclass fuera de main() (en forma global para ser usada en otra parte del programa).

Saludos

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Crear Objetos Globales
« Respuesta #1 en: Domingo 13 de Agosto de 2006, 05:20 »
0
Ya di como hacerlo!!!  :D  :D  :D  :comp:

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Crear Objetos Globales
« Respuesta #2 en: Domingo 13 de Agosto de 2006, 06:21 »
0
Cita de: "lalo_soft"
Ya di como hacerlo!!!  :D  :D  :D  :comp:
Jeje, pues pon el código :P.

Dos formas:

Código: Text
  1.  
  2. class Objeto {
  3.   public:
  4.     void funcion();
  5. } miObjetoGlobal;
  6.  
  7. Foo otroObjetoGlobal;
  8.  
  9. int main() {
  10.   miObjetoGlobal.funcion();
  11.   otroObjetoGlobal.funcion();
  12. }
  13.  
  14.  

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Crear Objetos Globales
« Respuesta #3 en: Domingo 13 de Agosto de 2006, 08:25 »
0
Cita de: "Geo"
Cita de: "lalo_soft"
Ya di como hacerlo!!!  :D  :D  :D  :comp:
Jeje, pues pon el código :P.

Dos formas:

Código: Text
  1.  
  2. class Objeto {
  3.   public:
  4.     void funcion();
  5. } miObjetoGlobal;
  6.  
  7. Foo otroObjetoGlobal;
  8.  
  9. int main() {
  10.   miObjetoGlobal.funcion();
  11.   otroObjetoGlobal.funcion();
  12. }
  13.  
  14.  

Saludos,
JJ (Geo).

Asi lo hice, el unico problema que detecte al declarar como global es que no se invocan los construtores.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Objetos Globales
« Respuesta #4 en: Domingo 13 de Agosto de 2006, 08:35 »
0
NO te recomiendo usar objetos globales, ya vas viendo los problemas que podes tener (no se que compilador usaras pero el VC++ llama a los constructores y destructores) y tenes otros como la imposibilidad de saber el order de inicializacion (si un objeto global llama a otro no inicializado puede tener un estado inutil en el mejor de los casos).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Crear Objetos Globales
« Respuesta #5 en: Domingo 13 de Agosto de 2006, 09:30 »
0
El programa final correra en un microcontolador ARM y el compilador que uso es de la marca IAR y que es para estos micros ,asi que tuve que ingeniarmelas para accesar a los constructores  :comp:  :comp:  con los objetos declarados como global.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Crear Objetos Globales
« Respuesta #6 en: Domingo 13 de Agosto de 2006, 11:18 »
0
Ya veo y como te decia mejor no usar objetos globales  (no te olvides de llamar a los destructores si no son llamados por el compilador).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Crear Objetos Globales
« Respuesta #7 en: Domingo 13 de Agosto de 2006, 18:18 »
0
Cita de: "lalo_soft"
Asi lo hice, el unico problema que detecte al declarar como global es que no se invocan los construtores.
Eso ya depende del compilador, con g++ si se llama a los constructores :).

Código: Text
  1.  
  2. #include <iostream>
  3. using std::cout;
  4. using std::endl;
  5.  
  6. class Objeto {
  7.   public:
  8.     Objeto() { cout << "Constructor de Objeto" << endl; }
  9.     ~Objeto() { cout << "Destructor de Objeto" << endl; }
  10. };
  11.  
  12. Objeto miObjetoGlobal;
  13.  
  14. int main() {
  15.   cout << "Inicio de main()" << endl;
  16.  
  17.   cout << "Fin de main()" << endl;
  18.  
  19.   return 0;
  20. }
  21.  
  22.  

Salida:
Citar
Constructor de Objeto
Inicio de main()
Fin de main()
Destructor de Objeto

Saludos,
JJ (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

lalo_soft

  • Miembro MUY activo
  • ***
  • Mensajes: 469
    • Ver Perfil
Re: Crear Objetos Globales
« Respuesta #8 en: Lunes 14 de Agosto de 2006, 19:27 »
0
g++ ???? :blink:

shakka

  • Miembro HIPER activo
  • ****
  • Mensajes: 679
  • Nacionalidad: cr
    • Ver Perfil
    • http://mbrenes.com
Re: Crear Objetos Globales
« Respuesta #9 en: Lunes 14 de Agosto de 2006, 19:55 »
0
Compilador de C++ para ambiente *ix.

Mejor dicho GNU Compiler Collection