| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| Xibus Junior JLI'ler
 
 
 Alter: 33
 Anmeldedatum: 18.02.2007
 Beiträge: 91
 Wohnort: Deutschland -> NRW -> OWL -> Paderborn -> Salzkotten
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.06.2007, 18:05    Titel: Globale klasse |   |  
				| 
 |  
				| hiho, ich hab da malwieder ein kleines problem. Da ich auf die instanz meiner logwriter klasse im ganzen spiel zugreifen möchte hab ich sie außerhalb der main funktion geschrieben, also davor. Ich kann jedoch nur main.cpp also in der gleichen datei darauf zugreifen. Wie kann ich das denn nun machen das ich von überall darauf zugreifen kann ?
 _________________
 Signatur
 
 
   |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Maxim Senior JLI'ler
 
 
 
 Anmeldedatum: 28.03.2004
 Beiträge: 249
 
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.06.2007, 18:35    Titel: |   |  
				| 
 |  
				| ^^ Schau mal in Tutorial-Bereich nach Singleton  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 18.06.2007, 20:17    Titel: |   |  
				| 
 |  
				| Wenn du unbedingt ein globales Objekt erstellen möchtest: Du brauchst eine Header Datei und eine cpp Datei. Denn man muss auch globale Variablen deklarieren um sie überall benutzen zu können: 
 
  	  | CPP: |  	  | //global.h extern LogBook g_LogObj;
 
 | 
 
 
  	  | CPP: |  	  | //global.cpp LogBook g_LogObj;
 
 | 
 
 Mit dem extern sagtst du dem Kompilier, das es eine solche Variable geben wird. Erstellt wird sie erst in der .cpp. Das muss so sein, da du sonst mehrere Variablen mit dem selben Namen erstellen würdest, wenn du die global.h in mehreren Dateien inkludierst.
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Xibus Junior JLI'ler
 
 
 Alter: 33
 Anmeldedatum: 18.02.2007
 Beiträge: 91
 Wohnort: Deutschland -> NRW -> OWL -> Paderborn -> Salzkotten
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 19.06.2007, 05:33    Titel: |   |  
				| 
 |  
				| ah nice thx  _________________
 Signatur
 
 
   |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Xibus Junior JLI'ler
 
 
 Alter: 33
 Anmeldedatum: 18.02.2007
 Beiträge: 91
 Wohnort: Deutschland -> NRW -> OWL -> Paderborn -> Salzkotten
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 19.06.2007, 10:17    Titel: |   |  
				| 
 |  
				| sry für doppelpost aber sonst liest es ja keiner mehr. 
 ALso ich habs so versucht wie du es gesagt hast also etwa so:
 
 Global.h
  	  | CPP: |  	  | #include "LogWriter.h" extern LogWriter LW;
 | 
 
 main.cpp
  	  | CPP: |  	  | #include "Global.h" LogWriter LW;
 
 | 
 
 
 dann erhalte ich:
 : error C2146: syntax error : missing ';' before identifier 'LW'
 
 
 Also hab ich es dann so gemacht:
 
 Global.h
  	  | CPP: |  	  | #include "LogWriter.h" extern LogWriter;
 | 
 
 main.cpp
  	  | CPP: |  	  | #include "Global.h" LogWriter LW;
 
 | 
 
 Wenn ich jetzt jedoch in Beispiel.cpp
 
  	  | CPP: |  	  | #include "Global.h" LW.open();
 
 | 
 mache kennt er die Instanz immer noch nit
 
 
 EDIT: @maxim   in deinem tut geht es ja wirklich um mein problem
  _________________
 Signatur
 
 
   |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jonathan_Klein Living Legend
 
  
 Alter: 38
 Anmeldedatum: 17.02.2003
 Beiträge: 3433
 Wohnort: Siegerland
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 19.06.2007, 15:34    Titel: |   |  
				| 
 |  
				| Hast du eine Global.cpp? Versuch mal:
 
  	  | CPP: |  	  | Global.cpp 
 #include "Global.h"
 LogWriter LW;
 
 | 
 _________________
 https://jonathank.de/games/
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Xibus Junior JLI'ler
 
 
 Alter: 33
 Anmeldedatum: 18.02.2007
 Beiträge: 91
 Wohnort: Deutschland -> NRW -> OWL -> Paderborn -> Salzkotten
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 19.06.2007, 17:13    Titel: |   |  
				| 
 |  
				| Für alle die maln prob damit kriegen werden: 
 Wenn etwas in enier bestimmten datei deklariert wurde und man von einer anderen datei darauf zugreifen möchte muss man in diese andere datei extern  + gleiche deklaration schreiben.
 
 beispiel:
 
 1.cpp:
 
 
 2.cpp
  	  | CPP: |  	  | extern int a; 
 a = 2;
 
 | 
 
 so funktioniert es
  _________________
 Signatur
 
 
   |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| DirectXer Dark JLI'ler
 
  
 
 Anmeldedatum: 05.02.2005
 Beiträge: 1201
 Wohnort: Köln
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 20.06.2007, 10:11    Titel: |   |  
				| 
 |  
				| das  kannst du dabei allerdings auch in einer header haben, die die *cpp inkludiert; dann musst du das nicht in jeder *.cpp neu hinschreiben. 
 Gruß DXer
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Xibus Junior JLI'ler
 
 
 Alter: 33
 Anmeldedatum: 18.02.2007
 Beiträge: 91
 Wohnort: Deutschland -> NRW -> OWL -> Paderborn -> Salzkotten
 Medaillen: Keine
 
 
 | 
			
				|  Verfasst am: 20.06.2007, 11:18    Titel: |   |  
				| 
 |  
				| hat bei mir nur probleme gemacht iwie _________________
 Signatur
 
 
   |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |