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: 37 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: 37 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 |
|
|
|