Variable mit "extern" in einem anderen Modul wiederverwenden
-
Hallo zusammen!!!
Ich weiß nun so viel, dass globale Variablen in anderen Modulen verwendet werden können, wenn in anderen Modulen vor der erneuten Deklaration der globalen Variable der Zusatz "extern" geschrieben wird. Das gleiche habe ich auch getan, doch ich bekomme nicht das gewünschte Ergebnis.
Hintergedanke meines Vorhabens ist eine globale Variable, bei der sich ständig der Wert ändert. Ein bestimmter Algotirhmus errechnet einen Wert, der auf diese globale Variable überschrieben wird, die ich in einem anderen Modul weitervewenden möchte.
Leider funktioniert das nicht, da ständig bei der Ausgabe der Wert "0" angezeigt wird.
Kann ich überhaupt globale Variablen, die einen sich ständig ändernden Wert haben sollen, in anderen Modulen verwenden? Und muss in diesem Fall die Deklaration dieser globalen Variable in einer nochmals höhreren Instanz geschehen (zur zeit habe ich diese globale Variable in dem Modul deklariert, welches ein Untermodul auf x-ter Instanz ist, in dem sie sich auch verändert)? Muss ich solche Deklarationen im Hauptmodul durchführen oder kann ich solche Deklarationen auch zwischendurch anwenden (leider weiß ich nicht, welches das Hauptmodul ist - ist ein Programm für Netzsimulationen)?
Ich würde mich sehr über Eure Hilfe freuen!!!
Mit freundlichem Gruß!
rturam625 :p
-
Irgendwie mit "extern", stimmt schon, ja.
Aber du kannst alternativ eine Methode in deinem Hauptsource implementieren, die einen Zeiger/ eine Referenz auf deine globale Variable zurückgibt. Diese Methode könntest du dann in anderen Sourcen verwenden, um auf die besagte Variable zugreifen zu können.
-
Aber du kannst alternativ eine Methode in deinem Hauptsource implementieren, die einen Zeiger/ eine Referenz auf deine globale Variable zurückgibt. Diese Methode könntest du dann in anderen Sourcen verwenden, um auf die besagte Variable zugreifen zu können.[/quote]
----------
Das ist mir leider etwas zu schwierig, da ich erst mit C++ begonnen habe und ich wenig Zeit in meiner Diplomarbeit habe.
Könnte ich auch das Ergebnis in eine zusätzliche Funktion (z.B. "Ergebnis") schreiben, welche erstmal in diesem Algorithmus aufgerufen werden muss, damit ich die Funktion "Ergebnis" im anderen Modul mit diesem gespeicherten Ergebnis weiterverwenden kann?
Stellt das ein Problem dar, wenn die Funktion "Ergebnis" zurselben Zeit in zwei verschiedenen Modulen aufgerufen werden kann? Wenn das kein Problem darstellen sollte, könnte doch diese Methode funktionieren, oder?
Ich würde mich auch diesmal wieder über Eure Mithilfe freuen!!!
Mit freundlichem Gruß!
rturam625 :p
-
Lösung gefunden!!!
Ihr braucht Euch keine Gedanken mehr über mein Problem zu machen!!! Ich habe die Lösung gefunden, welche aber nicht an "extern" liegt:
Kurz zu extern: Eine Variable, die in einem Modul (kann auch ein Modul aus einer unteren Instanz sein) verwendet wird, kann in einem anderen Modul mit dem Zusatz "extern" vor der Deklaration weiterverwendet werden. Wichtig ist aber, dass diese Variable in beiden Modulen gleich heißen muss!!!
Mein Fehler war nur, dass in beiden Modulen zwei verschiedene Algorithmen sind, die zu verschiedenen Zeiten eine Funktion aufrufen. Es war folglich eine richtige Programmierung, doch der Gedankengang war falsch!!!
Nochmals viele Dank für Deine Hilfe!!!
rturam625