cout kann nicht benutzt werden...
-
Hallo Leute,
bin noch Neuling, im Bereich oop und wollt ein paar Tests durch führen.
Leider folgendes Problem:
gameApplication.cpp: In member function »void GameApplication::Ausgabe()«: gameApplication.cpp:28: Fehler: »cout« wurde in diesem Gültigkeitsbereich nicht definiert gameApplication.cpp:28: Fehler: »endl« wurde in diesem Gültigkeitsbereich nicht definiertmain.cpp
#include <iostream> #include "gameApplication.h" //#include "map.h" //#include "player.h" int main () { GameApplication Test; Test.Ausgabe(); return 0; }GameApplication.h
#include <iostream> class GameApplication { public: GameApplication(); int var1; void Ausgabe(); private: int var2; };GameApplication.cpp
#include <iostream> #include "gameApplication.h" GameApplication::GameApplication() { var1=2; var2=3; } void GameApplication::Ausgabe() { cout << "Test" << var1 << endl; }Das ist wie gesagt nur einmal ein Test, darum verstehe ich diesen Fehler nicht ganz, bei anderen Testprogrammen hat es funktioniert.
Bitte um Infos...
lg und danke für Hilfen
DarianEdit:
Ich dachte das Makefile wäre vielleicht auch noch interessant.BIN = test SOURCE = main.cpp gameApplication.cpp all: $(SOURCE) g++ -o $(BIN) $(SOURCE) run: ./$(BIN) clean: $(SOURCE) rm $(BIN)
-
Ersetze mal
coutdurchstd::cout. Beiendlmachst Du das gleiche.
-
Dieser Thread wurde von Moderator/in nman aus dem Forum Linux/Unix in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Ahhh, daran habe ich gar nicht gedacht. Habe ich übersehen, danke.
lg Darian
-
oder du benutzt den namespace std:
using namespace std;
-
Xbelt2 schrieb:
oder du benutzt den namespace std:
using namespace std;Was aber eher die schlechtere Wahl ist (bitte nie im Header machen).
@Darian: Davon abgesehen sollte man nur die includes schreiben die man konkret benötigt. dur verwendest iostream nur in der GameApplication.cpp - genau dort und nirgens anders gehört das include hin.
cu André
-
warum ist das die schlechtere wahl? ich mach das nämlich immer^^
-
crank schrieb:
warum ist das die schlechtere wahl? ich mach das nämlich immer^^
Du hebelst damit den Sinn von Namespaces aus und läuft dann irgendwann mal gefahr, dass du Namenskonflikte hast.
Ganz schlimm ist es aber, wenn duusing namespaceim Header hast. Dies wird dann überall inkludiert und den globalen Namespace zugemüllt. Dass könnte dann plötzlich in einem anderen Projekt zu Fehlern führen, welche nicht mehr so einfach zu finden sind, da man sich vielleicht nicht bewusst ist, dass irgendwo in einem Header einusing namespacedrin ist. Und das ganze dann umzuschreiben ...
Daher am besten so wenig wie möglich verwenden und nur wenn man weiss was man tut.Grüssli
-
eigentlich sollte man mal den compiler so umbauen, dass er immer bei „using” im header eine Warnung ausspuckt. Das wäre speziell für anfänger, die auf eigene Faust lernen wollen sinnvoll. Du bist nicht der einzige, der das anfangs gemacht hat.
-
wie wärs denn mit
using std::cout;?
-
ja schon nicht schlecht, aber nicht im header. Using im header ist immer Problematisch.
-
Gut zu wissen, werde also nur in der GameApplication.cpp das includieren, und auch nur den namespace std verwenden.
lg und danke für die Infos...
Darian