Kleine Frage zu Typedefs



  • Hey Leute 😃 .
    Ich hab mal so ne frage, ich weiß die ist vielleicht etwas blöde.^^
    Also der eigentliche Syntax sieht ja so aus:

    typedef Alterbezeichner Neuerbezeichner;
    

    Beispiel:

    typedef int MeinInt;
    

    Ich glaube sinnvoll erscheinen sie, wenn man sie bei Templates verwenden wie z.b bei Strings:

    typedef basic_string<char> string;
    

    Jedoch wenn man kein using namespace hat benutzt man ja std::string, wäre dieses hier möglich?

    typedef std::string MyString;
    

    Danke im Voraus.
    Gruß, Wikinger75!



  • Ja!

    Man koennte es aber auch zum Beispiel so machen:

    using std::string;
    

    Dann kannst du auch gleich string verwenden ohne, dass die anderen Elemente von std bekannt waeren, falls das dein Ziel ist.

    Gruss
    Cartman



  • Wikinger75 schrieb:

    Hey Leute 😃 .
    Ich hab mal so ne frage, ich weiß die ist vielleicht etwas blöde.^^
    Also der eigentliche Syntax sieht ja so aus:

    typedef Alterbezeichner Neuerbezeichner;
    

    Beispiel:

    typedef int MeinInt;
    

    Ich glaube sinnvoll erscheinen sie, wenn man sie bei Templates verwenden wie z.b bei Strings:

    typedef basic_string<char> string;
    

    Jedoch wenn man kein using namespace hat benutzt man ja std::string, wäre dieses hier möglich?

    typedef std::string MyString;
    

    Danke im Voraus.
    Gruß, Wikinger75!

    Das wäre durch aus möglich.



  • Klar ist das möglich und auch gängige Praxis.. Was mich zur Frage führt, warum du das nicht ausprobiert hast.. 🙄



  • Mit typedef kannst du allen Typen einen anderen Namen geben. Du solltest nur wissen, dass damit kein anderer Typ entsteht, also beispielsweise keine Operatoren für ein int - typedef überladen werden können.



  • mh wo wir grad bei typedefs sind

    geht sowas?

    typedef MyInt int;
    

    also dass man die standarts quasi überschreibt
    und int a jetzt ein objekt von MyInt wäre?



  • Ne, geht nicht und das ist gut so. Du definierst ja eigl. einen neuen Typen und int gibts ja bereits.
    (Aber man kann das z.B mit Makros machen..)



  • drakon schrieb:

    (Aber man kann das z.B mit Makros machen..)

    Ja, mit Makros kann man so einige lustige Dinge machen, um für Verwirrung zu sorgen. :p

    #define int short
    #define if while
    #define true false
    #define continue break
    #define private public
    


  • Ist ja mal geil^^
    Aber in Headern soll man ja net using namespace benutzen, deswegen dachte ich da an typedef, denn als std::string zu schreiben ist auch doof.



  • Da gäbe es sonst noch das hier:

    using std::string;
    ...
    
    string a = "hallo";
    

    @Nexus:
    Oh ja.. Am besten stopfst du das noch in den Header deiner lib und verteilst die dann.. 🙂
    (Oder auch ganz fies: packst das mal bei nem Programmierfreund in einen Standardheader.. :))



  • Wikinger75 schrieb:

    denn als std::string zu schreiben ist auch doof.

    Findet man in der Form aber sehr sehr oft.



  • drakon schrieb:

    Oh ja.. Am besten stopfst du das noch in den Header deiner lib und verteilst die dann.. 🙂
    (Oder auch ganz fies: packst das mal bei nem Programmierfreund in einen Standardheader.. :))

    Genau an das hatte ich auch noch gedacht. Aber das würde dann schon fast zu weit gehen... 😉

    Das Lustige ist ja, dass die Schlüsselwörter mit grosser Wahrscheinlichkeit kompilieren. 😃

    hustbaer schrieb:

    Findet man in der Form aber sehr sehr oft.

    Generell sieht man es häufig, dass der Namensraum (nicht nur std ) explizit angegeben wird. Ich mache es zum Beispiel auch immer.



  • Nexus schrieb:

    Das Lustige ist ja, dass die Schlüsselwörter mit grosser Wahrscheinlichkeit kompilieren. 😃

    Wenn man mal private/public weglässt, wird es wahrscheinlich sogar ohne Warnungen auskommen..
    Eigentlich reicht ja schon das if/while für einen riesen Spass. 😉
    Das wäre dann die sogenannte if-Schleife. 🕶



  • drakon schrieb:

    Das wäre dann die sogenannte if-Schleife. 🕶

    Stimmt. Die letztens genannte switch -Schleife könnte man so auch hinkriegen... :p

    Hm, gerätst du langsam in Versuchung, drakon? 😃



  • Nexus schrieb:

    Hm, gerätst du langsam in Versuchung, drakon? 😃

    Ich hätts schon lange gemacht, aber leider programmieren meine Freunde nicht.. 😞



  • Falls ich dir mal einen Quellcode schicken sollte, werde ich dran denken. 🤡


Anmelden zum Antworten