Funktion in Funktion aufrufen ?
-
Hi,
Also ich hab nen paar FUnktionen geschrieben, die wiederrum Funktionen aufrufen, aber irgendwie funktioniert das ganze nicht#include <iostream> using namespace std; int main() //Hauptfunktion, in der der Programmcode steht { ausgabe(); //Die Funktion ausgabe() wird aufgerufen return 0; }; void ausgabe() // Die Funtion ausgabe() wird definiert/geschrieben { cout << "Hallo, ich bin die ausgabe-Funktion\n"; ausgabe_2(); //In der Funktion ausgabe() wird wiederrum die }; // die Funktion ausgabe_2() aufgerufen void ausgabe_2() // Defininion der Funktion ausgabe_3() { cout << "Ich bin die Funktion ausgabe_2() in der\n" << " Funktion ausgabe()\n"; ausgabe_3(); //die funktion ausgabe_3() wird aufgerufen }; void ausgabe_3() // die Funktion ausgabe_3 wird definiert { cout << "Ich bin ausgabe_3() in der ausgabe_2()-Funktion\n" << ", welche wiederrum in der Funktion ausgabe() steht\n"; };
*Kompilierung läuft...
Kapitel_1.cpp
C:\Dokumente und Einstellungen\falkline\Desktop\works\c++\Kapitel_1.cpp(5) : error C2065: 'ausgabe' : nichtdeklarierter Bezeichner
C:\Dokumente und Einstellungen\falkline\Desktop\works\c++\Kapitel_1.cpp(9) : error C2373: 'ausgabe' : Neudefinition; unterschiedliche Modifizierer
C:\Dokumente und Einstellungen\falkline\Desktop\works\c++\Kapitel_1.cpp(11) : error C2065: 'ausgabe_2' : nichtdeklarierter Bezeichner
C:\Dokumente und Einstellungen\falkline\Desktop\works\c++\Kapitel_1.cpp(14) : error C2373: 'ausgabe_2' : Neudefinition; unterschiedliche Modifizierer
C:\Dokumente und Einstellungen\falkline\Desktop\works\c++\Kapitel_1.cpp(17) : error C2065: 'ausgabe_3' : nichtdeklarierter Bezeichner
C:\Dokumente und Einstellungen\falkline\Desktop\works\c++\Kapitel_1.cpp(20) : error C2373: 'ausgabe_3' : Neudefinition; unterschiedliche Modifizierer
Fehler beim Ausführen von cl.exe.Kapitel_1.exe - 6 Fehler, 0 Warnung(en)
*
-
Die Funktionen müssen vorher Deklariert sein.
#include <iostream> using namespace std; void ausgabe_2(); void ausgabe_2(); void ausgabe_2(); int main() //Hauptfunktion, in der der Programmcode steht { ausgabe(); //Die Funktion ausgabe() wird aufgerufen return 0; }; void ausgabe() // Die Funtion ausgabe() wird definiert/geschrieben { cout << "Hallo, ich bin die ausgabe-Funktion\n"; ausgabe_2(); //In der Funktion ausgabe() wird wiederrum die }; // die Funktion ausgabe_2() aufgerufen void ausgabe_2() // Defininion der Funktion ausgabe_3() { cout << "Ich bin die Funktion ausgabe_2() in der\n" << " Funktion ausgabe()\n"; ausgabe_3(); //die funktion ausgabe_3() wird aufgerufen }; void ausgabe_3() // die Funktion ausgabe_3 wird definiert { cout << "Ich bin ausgabe_3() in der ausgabe_2()-Funktion\n" << ", welche wiederrum in der Funktion ausgabe() steht\n"; };
-
du rufst deine Funktion in main auf
int main () { funktion (); }
aber bis zu diesem zeitpunkt gibt es noch keine Funktionsdefinition.
Du musst daher die Funktion vorher wenigstens deklarieren:int main () { void funktion(); //deklaration, kein Aufruf! funktion(); }
bzw.
void funktion(); int main () { funktion (); }
Der Unterschied besteht im Sichtbarkeitsbereich
-
Original erstellt von Knuddlbaer:
**Die Funktionen müssen vorher Deklariert sein.#include <iostream> using namespace std; void ausgabe_2(); void ausgabe_2(); void ausgabe_2(); ```**
sollte wohl heißen
void ausgabe(); void ausgabe_2(); void ausgabe_3();
-
Du musst eine Funktion die Du aufrufen willst weiter vorne definieren/ deklarieren(und dann definieren). Und die Semikola nach Funktionskörpern solltest Du weglassen, die sind falsch. Das hindert aber niemanden daran, ausgabe_3 auch in einer anderen Funktion aufzurufen.
-
ooh, dummer Fehler, hätte ich sehen müssen
thx