002
17.11.2005, 17:57 Uhr
0xdeadbeef
Gott (Operator)
|
Das muss ein ziemlich alter Dev-C++ sein, oder du hast ihm nen anderen Compiler als den gcc untergeschoben, den er normalerweise mitbringt. Der gcc ist da eigentlich recht streng...
Wie dem auch sei. Zu 1.: Du musst keine using-Direktive benutzen, aber wenn du es nicht tust, musst du den namespace explizit angeben. Zum Beispiel, statt
C++: |
#include <iostream> using namespace std;
int main() { cout << "Hello, World!" << endl; }
|
kann man auch
C++: |
#include <iostream>
int main() { std::cout << "Hello, World!" << std::endl; }
|
schreiben.
Zu 2.: #include <iostream.h> ist falsch. Manche Compiler unterstützen es noch (insbesondere ältere), weil es vor der Standardisierung von C++ recht weit verbreitet war, aber Standard-C++ kennt iostream.h nicht, und inzwischen akzeptieren es viele Compiler auch nicht mehr.
Das ist vermutlich aus Gründen der Konsistenz so, denn string.h ist von C her schon belegt, deswegen heißt der Header für std::string einfach nur string - und damit da kein Spezialfall unter den Standardheadern entstand, hat man halt für STL-Header das .h ganz weggelassen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |