Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Objetos globales en C++

Estas en el tema de Objetos globales en C++ en el foro de C/C++ en Foros del Web. Hola quisiera saber como es possible acceder a un objeto instanciado en un archivo diferente. Por ejemplo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original // class.cpp ...
  #1 (permalink)  
Antiguo 10/12/2013, 22:54
 
Fecha de Ingreso: abril-2012
Mensajes: 79
Antigüedad: 12 años
Puntos: 0
Objetos globales en C++

Hola quisiera saber como es possible acceder a un objeto instanciado en un archivo diferente.

Por ejemplo

Código C++:
Ver original
  1. // class.cpp
  2. class MyClass {
  3.  
  4. }
  5.  
  6. // main.cpp
  7. MyClass MyObject = new Myclass;
  8.  
  9. // another_file.cpp
  10. // Como accedo al objeto desde aqui?

Muchas gracias desde ya.
  #2 (permalink)  
Antiguo 11/12/2013, 05:55
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Objetos globales en C++

Plantealo de otra forma:

Código C++:
Ver original
  1. //myclass.h
  2. #ifndef _MYCLASSH
  3. #define _MYCLASSH
  4.  
  5. class MyClass {
  6. public:
  7.     MyClass();
  8. private:
  9.     void exec();
  10. };
  11.  
  12. #endif


Código C++:
Ver original
  1. //myclass.cpp
  2. #include "myclass"
  3. MyClass::MyClass() {
  4. }
  5.  
  6. void MyClass::exec() {
  7. }


Código C++:
Ver original
  1. //main.h
  2. #ifndef _MAINH
  3. #define _MAINH
  4.  
  5. #include "myclass.h"
  6. MyClass *MyObject;
  7.  
  8. #endif

Código C++:
Ver original
  1. //main.cpp
  2. #include "main.cpp"
  3. MyObject = new MyClass();

Código C++:
Ver original
  1. //otra_cosa.h
  2. #ifndef _OTRACOSAH
  3. #define _OTRACOSAH
  4.  
  5. #include "main.h"
  6.  
  7. #endif

Código C++:
Ver original
  1. //otracosa.cpp
  2. MyObject->exec();

Saludos
vosk
  #3 (permalink)  
Antiguo 11/12/2013, 15:28
 
Fecha de Ingreso: abril-2012
Mensajes: 79
Antigüedad: 12 años
Puntos: 0
Respuesta: Objetos globales en C++

Muchas gracias, ni bien pueda lo pruebo y te comento.

EDIT: Gracias funciona muy bien.

Última edición por asdasd22; 12/12/2013 a las 04:31
  #4 (permalink)  
Antiguo 12/12/2013, 18:21
 
Fecha de Ingreso: abril-2012
Mensajes: 79
Antigüedad: 12 años
Puntos: 0
Respuesta: Objetos globales en C++

mmm en un principio parecia ir bien pero luego el programa me empezo a dar los tipicos segmentation fault en runtime, y tambien me genere un lio terrible incluyendo multiples veces los mismos archivos.

Pregunta, es possible declarer el objeto extern igual que una variable?
  #5 (permalink)  
Antiguo 13/12/2013, 09:05
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Objetos globales en C++

"...incluyendo multiples veces los mismos archivos..."

Para esto estan los ifdef que puse al principio de las cebeceras.

Lo segmentation fault en estos casos suelen ocurrir cuando desde el archivo C quieres usar una instancia declarada en B de un objeto A no iniciado, es decir que si B no inicia A entonces C no puede acceder a la variable, tienes que poner algun tipo de control. Es lo mismo que sucede si estas en multiprocesos, tienes que poner las varoables en una seccion critica y controlarlo con semaforos o lo que quieras.

Pon algo de codigo, o un ejemplo que falle para ver como lo juntas todo.

Saludos
vosk

Etiquetas: globales, objetos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:59.