Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   

Die mobilen Seiten von c++.de:
http://m.c-plusplus.de
Infos hier [BETA]

  
c++.de :: C++ (auch C++0x und C++11) ::  Globale Variable  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Flutschii
Unregistrierter




Beitrag Flutschii Unregistrierter 15:16:18 21.08.2012   Titel:   Globale Variable            Zitieren

Guten Tag,



Ich habe hier ein kleines Projektchen und auch ein kleines Problemchen ;)
Ich habe verschiedene .cpp und .hpp Dateien und will nun von einer Funktion "Anfang" die Funktion "Weiter" aufrufen die in der selben Datei sind, aber von der Funktion "Weiter" geh ich dann nochweiter auf eine Funktion "Nochweiter" in einer anderen Datei.

Nun bräuchte ich aber einen Variableninhalt in "Nochweiter" die in "Anfang" verwendet wurde..

Ich hoffe ihr kommt draus wie ich das meine...



Danke für die Antworten!
daddy_felix
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.01.2012
Beiträge: 598
Beitrag daddy_felix Mitglied 15:18:44 21.08.2012   Titel:              Zitieren

das klingt für mich nach einem Parameter.

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Anfang()
{
  int x = 5;
  Weiter(x);
}
 
void Weiter(int input)
{
  NochWeiter(input);
}
 
void NochWeiter(int xyz)
{
  cout << "Value: " << xyz << endl;
}
Flutschii
Unregistrierter




Beitrag Flutschii Unregistrierter 15:25:08 21.08.2012   Titel:              Zitieren

Danke für die Antwort, aber mein Problem ist halt das ich nicht weis wie ich die Variablen deklarieren muss das sie eben dann wieder in der Funktion "Anfang" weiterverwenden will....


in deinem Beispiel will ich z.b. in der Funktion "Anfang" dann nach dem Aufruf von "Weiter" mit der Variable xyz weiter was anfangen...
aber er kennt sie dann da ja nicht..
vario-500
Mitglied

Benutzerprofil
Anmeldungsdatum: 14.10.2011
Beiträge: 202
Beitrag vario-500 Mitglied 15:29:40 21.08.2012   Titel:              Zitieren

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Anfang()
{
  int x = 5;
  int y = Weiter(x); // y == ++xyz
}
 
int Weiter(int input)
{
  return NochWeiter(input);
}
 
int NochWeiter(int xyz)
{
  ++xyz;
  cout << "Value: " << xyz << endl;
  return xyz;
 
}


du musst die funktionen einfach was zurückgeben lassen
Flutschii
Unregistrierter




Beitrag Flutschii Unregistrierter 15:34:06 21.08.2012   Titel:              Zitieren

Danke nochmals für die Antworten, aber was wenn ich mehrere Variablen habe?
daddy_felix
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.01.2012
Beiträge: 598
Beitrag daddy_felix Mitglied 15:46:30 21.08.2012   Titel:              Zitieren

Dann ist möglicherweise dein Design nicht gut. Wenn viele Funktionen mit denselben Variablen arbeiten, sollte man über eine Klasse nachdenken.

Ansonsten geht auch sowas:

C++:
1
2
3
4
5
6
7
8
9
10
11
struct myStruct
{
  std::string stringVar;
  int intVar;
  int intVar2;
}
 
void MachWas(myStruct& ms)
{
  ms.stringVar = "changed";
}
camper
Mitglied

Benutzerprofil
Anmeldungsdatum: 06.08.2004
Beiträge: 5788
Beitrag camper Mitglied 15:47:28 21.08.2012   Titel:              Zitieren

Flutschii schrieb:
Danke nochmals für die Antworten, aber was wenn ich mehrere Variablen habe?
Beispiel?
Flutschii
Unregistrierter




Beitrag Flutschii Unregistrierter 15:59:41 21.08.2012   Titel:              Zitieren

Vielen Dank, mit der return würde es so wie ich das Projekt habe funktionieren, aber ich denke das ich das eben immer weiter entwickle und dann plötzlich 2 Variablen habe, darum frage ich jetzt schon was währe wenn ;)

geht dasselbe auch mit einem Array? z.b. Array "NochvielWeiter[10][10]"?

dann einfach im code

C++:
int NochvielWeiter[10][10] = Weiter(vielWeiter[10][10])


?
daddy_felix
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.01.2012
Beiträge: 598
Beitrag daddy_felix Mitglied 16:12:01 21.08.2012   Titel:              Zitieren

nein, mit Arrays geht das so nicht. Es geht, aber anders. (Präventiv:) Du solltest statt Arrays sowieso lieber std::vector nehmen.

Generell kommst du gerade irgendwie vom Hundersten ins Tausendste. Es gibt häufig mehrere Möglichkeiten der Modellierung. Je nach konkretem Problem sind einige besser, andere schlechter. Allgemein lässt sich sowas selten sagen.
Flutschii
Unregistrierter




Beitrag Flutschii Unregistrierter 16:16:52 21.08.2012   Titel:              Zitieren

daddy_felix schrieb:
nein, mit Arrays geht das so nicht. Es geht, aber anders. (Präventiv:) Du solltest statt Arrays sowieso lieber std::vector nehmen.

Generell kommst du gerade irgendwie vom Hundersten ins Tausendste. Es gibt häufig mehrere Möglichkeiten der Modellierung. Je nach konkretem Problem sind einige besser, andere schlechter. Allgemein lässt sich sowas selten sagen.


jo ich merke schon das ich grad bisschen überfordert werde mit dem Schritt, aber irgendwie will ich einfach eine schöne lösung für mein Problem finden aber find sie einfach nicht..

Globale Variablen will ich nicht..
Arrays hab ich keine Ahnung..
c++.de :: C++ (auch C++0x und C++11) ::  Globale Variable  
Gehen Sie zu Seite 1, 2, 3, 4  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.