deprecated header



  • Alleine an meinen Fragen wird man erkennen das ich absoluter C++ Anfaenger bin.
    Aber bitte beantwortet mir doch folgende Frage:

    Ich schreibe meine Programme immer mit dem Headerfile iostream.h also:
    #include <iostream.h>

    Beim uebersetzten bekomme ich ein warning das die Headerdatei veraltet ist.
    In file included from /usr/include/c++/3.3/backward/iostream.h:31,
    from hammer.cpp:1:
    /usr/include/c++/3.3/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.

    Ich habe jetzt im Forum, und auch im warning gelesen das man das ".h" einfach weg lassen soll. Das habe ich gemacht. Aber dann kommt folgende Fehlermeldung:

    hammer.cpp: In function int main()': hammer.cpp:5: error:cout' undeclared (first use this function)
    hammer.cpp:5: error: (Each undeclared identifier is reported only once for each
    function it appears in.)
    hammer.cpp:5: error: `endl' undeclared (first use this function)

    Was mache ich falsch? Muss ich noch irgendwelche libs nachinstallieren?
    Ich verwende g++3.3 unter Debian 3.1 Sarge.

    dpkg -l | egrep "gcc|g\+\+"
    ii g++ 3.3.5-1 The GNU C++ compiler
    ii g++-3.3 3.3.5-5 The GNU C++ compiler
    ii gcc 3.3.5-1 The GNU C compiler
    ii gcc-3.3 3.3.5-5 The GNU C compiler
    ii gcc-3.3-base 3.3.5-5 The GNU Compiler Collection (base package)
    ii libgcc1 3.4.3-6 GCC support library



  • Hi!

    iostream.h wurde als deprecated(abgelehnt, veraltet) eingestuft, man sollte einen großen Bogen drumherum machen, denn iostream (ohne .h) ist so ähnlich wie mit .h, nur, dass alle Objekte im namepace std sind. In iostream.h sind alle Objekte gloabl. Das kann zu Namenskonflikten führen. Ich empfehle dir iostream.

    So solltest du dein Problem lösen:

    #include <iostream> // für cout, cin, endl usw.
    
    using namespace std; // namespace std global benutztn
    


  • Danke so geht's 👍



  • Wie schafft man es eigentlich diese Frage nicht beantwortet zu kriegen bei der unglaublichen Masse an Threads, FAQs und Tutorials?



  • Scheint wohl zu gehen. Ich bin der beweiss. Aber es gibt auch noch Leute die darauf ernsthaft antworten und keine dummen bemerkungen machen.

    Das ist heute mein erster Tag mit C++. Und da kann das schon mal vorkommen.



  • Schnapp dir lieber ein aktuelles Tutorial/Buch sonst wirst du noch zig solche Threads erstellen müssen.


Anmelden zum Antworten