myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[C++] Auf Globale Variable in anderer Datei zugreifen

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 29.05.14, 18:19   #1
Show_Down
Anfänger
 
Registriert seit: Apr 2009
Beiträge: 1
Bedankt: 3
Show_Down ist noch neu hier! | 0 Respekt Punkte
Standard [C++] Auf Globale Variable in anderer Datei zugreifen

Hey, ich versuch euch mal möglichst einfach mein Problem zu schildern


main.cpp

Code:
//Globale Variable
Container container;
.
.
.
.
void createMedia(){
	Media* m_tmp = new Media;
	container.add(m_tmp);
.
.
.


medien.cpp

Code:
.
.
.
for (container.begin(); container.getitem() != NULL; container.next()){
		if(container.getitem()->get_signatur() == signatur){
			cout << "Es existiert bereits ein Medium mit dieser Signatur" << endl;
			cin.clear();
			cin.ignore( numeric_limits<streamsize>::max(), '\n' );
			cout << "Bitte Mediumdaten eingeben: Signatur und Titel\n\n";
			cout << "Signatur: ";
		}
		container.next();
		cout << endl;
	}

.
.
.
.

(die fett geschriebenen Wörter unterstreicht der Compiler)

Der Compiler findet die Globale "Container container" Variable nicht aus der main Datei.
Die Header Dateien sind auch schon includiert. Wenn ich die Globale Variable aber in die Header-Datei packe meckert er er auch rum bzw. gibt mir dann noch mehr Fehler aus.
Show_Down ist offline   Mit Zitat antworten
Ungelesen 30.05.14, 18:06   #2
Berlin1992
¥
 
Registriert seit: Jul 2013
Beiträge: 6
Bedankt: 3
Berlin1992 ist noch neu hier! | 0 Respekt Punkte
Standard

Beim zweiten file schreib bei den globalen Variablen dazu:
extern Container container;
Berlin1992 ist offline   Mit Zitat antworten
Ungelesen 03.06.14, 11:00   #3
Show_Down
Anfänger
 
Registriert seit: Apr 2009
Beiträge: 1
Bedankt: 3
Show_Down ist noch neu hier! | 0 Respekt Punkte
Standard

Danke an Berlin1992, seltsamer weis hab ich das mit dem extern schonmal probiert aber es hat nicht funktioniert, nach zwei tagen mach ich den selben versuch und siehe da es hat funktioniert.


Jetzt hätte ich aber noch eine andere frage:

Und zwar hab ich ja den Container in dem "Medien Angelegt werden mit einer Signatur (Zahlen) und einem Namen.
Wenn versucht wird ein neues Medium anzulegen mit einer Signatur die es schon gibt soll ein Fehler ausgegeben werden und dieses Neue medium nicht in der liste aufgeführt werden bzw. soft gelöscht werden.
Mittlerweile hab ich es soweit dass erkannt wird dass bereits ein Medium mit der gleichen Signatur existiert und den Fehler ausgibt, jedoch ist dann in der Liste/container eine leere stelle und als signatur steht dort ein zufälliger zahlen wert.

Was muss ich tun um zum oben beschriebenen Ergebnis zu kommen?



Hier mal der Konstruktor mit dem wesentlichen:

Code:
....

Media::Media(){

	cin.clear();
	cin.ignore( numeric_limits<streamsize>::max(), '\n' );
	cout << "Bitte Mediumdaten eingeben: Signatur und Titel\n\n";
	cout << "Signatur: ";

	while (!(cin >> signatur) && (cin.fail()) ){
		cin.clear();
		cin.ignore( numeric_limits<streamsize>::max(), '\n' );
		cout << "Bitte Mediumdaten eingeben: Signatur und Titel\n\n";
		cout << "Signatur: ";
		cout << endl;
	}

	for (container.begin(); container.getitem() != NULL; container.next()){
		if(container.getitem()->get_signatur() == signatur){
			Media* k_tmp = container.getitem();
			delete k_tmp;
			cout << "Es existiert bereits ein Medium mit dieser Signatur \n" << endl;
			return;
			}
		cout << endl;
		}


	cout << "Titel: ";
	cin.ignore( numeric_limits<streamsize>::max(), '\n' );
	getline(cin, titel );
	cout << endl;
};


....
Show_Down ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr.


Sitemap

().