using namespace std
-
hallo,
also ich sehe hier in den Beispielen öfters dieses
using namespace std
. Wozu braucht man das eigentlich? Ich habs noch nie verwendet (und kenne es eigentlich nur vom sehen her). Naja und in unseren Projekten gibts das auch nicht.
Das wird doch für Objektorientierte Programmierung (MFC usw... )verwendet oder?gruß Chris++
-
std ist der Namensraum in dem die Standard-Libraries liegen. Durch das using erreicht man im Endeffekt nur, dass man nicht immer explizit std:: vor alles schreiben muss was aus diesem Namensraum kommt. Mit den MFC hat es aber nicht das geringste zu tun. Schau es dir lieber mal in einem guten C++ Buch an
.
-
Beispiel:
#include <string.h> ... std::string s="Hallo"; std::string s1="Welt";
aber so ist es doch schöner:
#include <string> using namespace std; ... string s="Hallo"; string s1="Welt";
-
Anderes Beispiel, ich hab vorhin folgendes gesehen:
#include <iostream.h> main() { ... std::cout<< "irgendwas" <<endl; ... }
Allerdings hab ich früher immer so Programmiert:
#include <iostream.h> main() { ... cout<<"irgendwas"<<endl; .. }
und das ging auch, es gab nie Probleme. Warum muss/sollte man jetzt also dieses std:: benutzen (wenns auch ohne geht).
}
-
Chris++ schrieb:
Warum muss/sollte man jetzt also dieses std:: benutzen (wenns auch ohne geht).
Weil alles andere nicht standardkonform ist? Dein Code zeigt noch weitere Schwächen. main ohne Rückgabetyp und iostream.h statt iostream!
-
eben es is halt als Standard definiert, klar kannst das auch anders programmieren, aber dann ist es eben nicht nach standard.
-
Walli schrieb:
Dein Code zeigt noch weitere Schwächen. main ohne Rückgabetyp und iostream.h statt iostream!
naja den rückgabewert hab ich aus faulheit weggelassen und das mit dem iostream.h hab ich halt so gelernt.
-
Chris++ schrieb:
Walli schrieb:
Dein Code zeigt noch weitere Schwächen. main ohne Rückgabetyp und iostream.h statt iostream!
naja den rückgabewert hab ich aus faulheit weggelassen und das mit dem iostream.h hab ich halt so gelernt.
hi!
verwende doch #include <iostream> die is neuer...grund:
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=iostream#Answcu
-
aber wieso verwenden viele wirklich std:: vor allem anstatt der using direktive? gibt es da irgendwelche nachteile/vorteile?
-
kruemel0809 schrieb:
aber wieso verwenden viele wirklich std:: vor allem anstatt der using direktive? gibt es da irgendwelche nachteile/vorteile?
mit using namespace foo hebst du den sinn von namensräumen auf.
das ist oft nicht gewünscht (oft ist es aber auch egal).
-
Chris++ schrieb:
naja den rückgabewert hab ich aus faulheit weggelassen
Faulheit sollte nie ein Grund für unsauberes Programmieren sein.
Das wird dir spätestens dann zum Verhängnis, wenn du einen Compiler hast der sich strikt an den Standard hält.