Globale Variablen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
geograman
Beiträge: 28
Registriert: 23. November 2008 18:58

Globale Variablen

Beitrag von geograman »

Hi Leute,

Ich habe ein kleines Problem und zwar habe ich in meiner main.cpp ein haufen globaler Variablen die ich gerne auch von meinen Klassen aus ansprechen würde , nur aus irgendeinem Grund geht das nicht.

Kann mir eventuell jemand erklären wieso das nicht geht und wie man es dann realisieren kann bzw ob es überhaupt geht ?

Danke :)
ptr
Beiträge: 10
Registriert: 14. März 2008 20:40
Wohnort: Tirol

Beitrag von ptr »

naja, dazu müsstes du im entsprechenden .h/.cpp file (deiner klasse) main.cpp inkludieren. da das aber nicht besonders schon ist, würde ich dir empfehlen die dekleration der globalen variablen in ein header file auszulagen (zb main.h) und dieses dann zu inkludieren. die definition der variablen kann natürlich weiterhin im main.cpp passieren.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

naja, dazu müsstes du im entsprechenden .h/.cpp file (deiner klasse) main.cpp inkludieren. da das aber nicht besonders schon ist
das könnte man dann zwar compilen aber nicht linken... es darf nur _eine_ main-Funktion geben....
ein haufen globaler Variablen die ich gerne auch von meinen Klassen aus ansprechen würde
Das ist schlechter Stil.... Falls deine Variabeln Informationen über Programm-Argumente sind, könntest du diese in der Klasse auch via "QCoreApplication::arguments()" kriegen. Andere Daten wären in einer Singleton-Klasse (http://de.wikipedia.org/wiki/Singleton_(Entwurfsmuster)) besser aufgehoben, als in globalen Variabeln....
geograman
Beiträge: 28
Registriert: 23. November 2008 18:58

Globale Variablen

Beitrag von geograman »

Hi,

danke für die Antworten , es geht bei mir eigentlich darum auf ein bereits bestehendes c++ programm ohne GUI eine GUI aufzusetzen, und ich will jetzt natürlich nicht das ganze Programm in Klassen umschreiben sondern möglichst so lassen wie es ist. Das war mein Problem aber ich werde das dann gleich mal ausprobieren , danke.
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Das verstehe ich... ich kann's aber trotzdem nicht lassen:
Auch Konsolenprogramme können sauber in Klassen entworfen werden... OOP ist _nicht_ auf GUIs beschränkt!!

Gruss und schöne Weihnachten!
Superheftig
Beiträge: 63
Registriert: 6. September 2008 15:20

Beitrag von Superheftig »

definiere globals.h

Code: Alles auswählen

extern QString globalString;

in der main.cpp

Code: Alles auswählen

#include "globals.h"

QString globalString = "";

int main() {
  return 0;
}
und jeder datei in der du die globale variable brauchst einfach
globals.h includieren

Das ganze ist natürlich wie oben schon gesagt nicht gerade der saubere programmier stil
gboelter
Beiträge: 80
Registriert: 5. Dezember 2007 14:52
Wohnort: Davao City, Philippines

Re: Globale Variablen

Beitrag von gboelter »

geograman hat geschrieben:Ich habe ein kleines Problem und zwar habe ich in meiner main.cpp ein haufen globaler Variablen die ich gerne auch von meinen Klassen aus ansprechen würde , nur aus irgendeinem Grund
geht das nicht.
Warum packst diese Variablen nicht einfach in eine QStringList und uebergibst dann die QStringList als Parameter?
Guenther
Davao City, Philippines, Planet Earth, 28°C

Qt 4.8.1 for Linux/X11 - Open Source Edition for Application Development
Antworten