"typedef;" vs. "using namespace std;"



  • hi leute!

    ich bin gerade in den anfängen zur c++ programmierung, und habe da ein klitzekleines problem:
    in meinem buch zum selbststudium wird gerade das thema "typedef" bahandelt, wo man datentypen mit einem eigenen schlüsselwort definieren kann.
    das codebeispiel in meinem buch sieht so aus:

    // Zeigt die Verwendung des Schlüsselworts typedef
    #include <iostream.h>
    
    typedef unsigned short int USHORT;
    
    int main()
    {
    USHORT Width = 5;
    USHORT Length;
    Length = 10;
    USHORT Area = Width * Length;
    
    cout << "Breite: " << Width << "n";
    cout << "Laenge: " << Length << endl;
    cout << "Flaeche: " << Area << endl;
    return 0;
    }
    

    Das ist ja alles schön und recht, aber ich habe schon bei vorherigen Uebungen herausgefunden, dass ich vor der "main"-Funktion die Zeile "using namespace std;" einfügen muss (keine Ahnung wie man das bezeichnet, wäre gut zu wissen wie das heisst.). Ueber diese Zeile steht nichts im Buch, aber um zu kompilieren ist sie anscheinend nötig (ich verwende G++).

    Nun komme ich zum eigentlichen Problem 😞 :
    Es scheint so als könnte ich die beiden Zeilen - "using namespace std;" und "typedef unsigned short int USHORT;" - nicht kombinieren. Ich habe schon alle Varianten probiert, doch bei allen habe ich eine Fehlermeldung vom Compiler bekommen!

    Könnt ihr mir erklären wieso das so ist, und mir vielleicht eine Lösung für dieses Problem sagen? Ich denke es ist wichtig von Anfang an alles richtig zu verstehen, sonst häufen sich die Probleme bei kommenden Kapiteln...

    Falls es jemanden interessiert, ich benutze dieses Buch: http://www.amazon.de/Jetzt-lerne-ich-CD-ROM-Jubiläumsausgabe/dp/3827267226 Allgemein gefällt mir das Buch, ist gut beschrieben! 😉

    Danke für jede Hilfe!



  • #include <iostream> // .h ist nicht mehr korrekt.
    
    typedef unsigned short USHORT;
    
    int main()
    {
        USHORT nWidth = 5;
        USHORT nLength = 10;
        std::cout << "Breite: " << nWidth << std::endl;
        std::cout << "Laenge: " << nLength << std::endl;
        std::cout << "Flaeche: " << nWidth * nLength << std::endl;
    }
    

    ... was geht da nicht?!



  • (D)Evil schrieb:

    ... was geht da nicht?!

    Hab grad das gleiche Posting in einem ganz anderen Forum ähnlich beantwortet...


Anmelden zum Antworten