Fehler "`cout' undeclared (first use this function)"
- 
					
					
					
					
 Ich bin gerade dabei C++ zu lernen und habe mir für die schule ein Programm geschrieben, dass Pyramidenflächen u.ä. ausrechnen soll. 
 ich habe die einzelnen Berechnungen als Funktionen in eigene Dateien gespeichert und included.
 Jetzt bekomme ich bei einer der beiden includeten Dateien eine Fehlermeldung
 `cout' undeclared (first use this function)using namespace std; float Seitenflaeche()//Seitenflächen Berechnung { float fGrundseite; cout << "Bitte geben sie die Grundseite der Seitenfläche ein:\n"; cin >> fGrundseite; float fHoehe; cout << "\nGeben sie nun die Höhe des Seitendreiecks an:\n"; cin >> fHoehe; float Ergebnis; Ergebnis = 0.5 * fGrundseite * fHoehe; return Ergebnis; }In Google hab ich nur Forenbeiträge gefunden, in denen es daran lag, dass "using namespace std;" gefehlt hat. Was ich auch seltsam finde, in der anderen Datei funktionierts, obwohl ich keinen Unterschied bemerke: using namespace std; float Kante() //Kantenfunktion { float fHoehe; cout << "\nGeben sie die H\x94 \bhe der Pyramide an:\n"; cin >> fHoehe; float fEntfernung; cout << "\nGeben sie die Entfernung vom H\x94 \bhenfußpunkt zur Ecke der Pyramide an:\n"; cin >> fEntfernung; float fSumme; fSumme = fEntfernung * fEntfernung + fHoehe * fHoehe; float fErgebnis; fErgebnis = sqrt(fSumme); return fErgebnis; }Kann mir jemand helfen? 
 MfG Crater2150
 
- 
					
					
					
					
 #include <iostream> ? 
 
- 
					
					
					
					
 wenn ich in die Datei <iostream> include zeigts mirt in dieser Zeile: fGrundFlaeche = Grundflaeche();den Fehler "multiple definition of "Grundflaeche()"" an, der vorher nicht war. 
 Dabei ist da doch gar keine definition von der Funktion oder?
 
- 
					
					
					
					
 Zeig mal den ganzen Code der Übersetzungseinheit mit dem Fehler (wenns nicht zu viel ist) 
 
- 
					
					
					
					
 Hab die Dateien mal hochgeladen 
 Die Quelldatei mit main: http://www.sgdpp.de/CPP/Pyramiden.cpp
 Die Datei mit Funktionen bei der es funktioniert: http://www.sgdpp.de/CPP/strecken.cpp
 Die Datei bei der die Fehlermeldungen kommen: http://www.sgdpp.de/CPP/Flaechen+Volumen.cpp
 
- 
					
					
					
					
 _Therotisch_ geht das wenn du nur eine Übersetzungseinheit hast... Ich vermute jedoch dass du die strecken.cpp und Flaechen+Volumen.cpp extra compilierst. Die werden dann in der Pyramiden.cpp wieder eingebunden und dann kommts zu den Multiple Declarations. Deshalb hattes du auch den Fehler dass cout nicht bekannt ist. Am Besten du legst dir zu den andern beiden Dateien noch Header-Dateien ein und bindest die dann in die Pyramiden.h ein. Etwa so: // strecken.h float Kante(); float BasisKante1(); float PythagorasHoehe(); // strecken.cpp #include "strecken.h" /* den restlichen code */ // Pyramiden.h #include "strecken.h" /* anstatt .cpp, dann noch den restlichen code */Nur noch so... - Die C Funktionen in C++ reinzubauen ist net besonderst schön... Anstatt system("PAUSE") schreibt man: std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get();- Schonmal was von Schichtentrennung gehört? - Du solltest den Code mal richtig einrücken... Wo man die geschweiften Klammern setzt ist geschmacksache, aber in einem neuen Codeblock immer ein <TAB> nach innen. 
 
- 
					
					
					
					
 O.K., danke, nachdem ich das mit den Header-Dateien gemacht hatte ging's. Ich programmiere erst seit 2 Wochen und in dem Buch das ich habe steht nichts über Schichtentrennung. Könntest du mir sagen, was das bedeutet? mfg Crater 
 
- 
					
					
					
					
 Nungut... Mal anhand von diesem Beispiel: Stell dir mal vor du würdest irgendwann das selbe Programm nochmal schreiben wollen, nur als Windows Programm. Tja Pech gehabt denn so kannst du keine Funktion von deinen verwendet weil alle cin/cout verwenden. Sprich die Schichtentrennung fängt an wenn du die Oberfläche vom Rest trennst. Also so: float Seitenflaeche(float fGrundseite, float fHoehe)//Seitenflächen Berechnung { float Ergebnis; Ergebnis = 0.5 * fGrundseite * fHoehe; return Ergebnis; }
 
- 
					
					
					
					
 ok, schon kapiert danke für die Tipps  
 MfG Crater