"return 0;" oder return(0);"?



  • Ja ganz außen die Klammern brauch man natürlich nicht, aber ich persönlich finde

    return (bool0 == bool1);
    

    besser als

    return bool0 == bool1;
    

    Es gefällt meinen Augen besser 😃



  • FreakY<3Cpp schrieb:

    Es gefällt meinen Augen besser 😃

    Bei mir ists umgekehrt. Weil ich dann sofort ueberlegen wuerde was die klammern zu bedeuten haben...



  • Jeder hat seinen Geschmack, ich persönlich finde auch die Klammer, gleich nach der Funktion im Java Stil zu schreiben, hässlich.

    int Funktion(){
    }
    

    Jedem das seine.



  • Die Schreibweise mit Klammern erweckt stark den Eindruck, dass der Autor nicht wusste, das es auch ohne geht, oder zumindest Angst hatte, dass es sonst irgendwie mehrdeutig werden würde. Und Code von Leuten, die bei solchen Sachen schon ins Grübeln kommen, kann auch sonst nicht viel taugen.
    Das ist natürlich ein unzulässiger Schluss, aber für ein schlechtes Gefühl reicht es.



  • FreakY<3Cpp schrieb:

    Jeder hat seinen Geschmack, ich persönlich finde auch die Klammer, gleich nach der Funktion im Java Stil zu schreiben, hässlich.

    int Funktion(){
    }
    

    Na das mag ich dann wieder! 😃 Abgesehen vom fehlenden Blank hinter der Parameterliste natürlich...

    Stimmt schon, jedem das Seine.



  • Schrecklich finde ich vor allem Folgendes (also wenn ein einzelnes Token auf das Schlüsselwort folgt). Bei grösseren Berechnungen kann ich noch nachvollziehen, dass man bei return klammert, auch wenn ich es selbst nicht tue. Ein Leerzeichen zwischen return und der öffnenden Klammer fände ich dann aber schon angebracht.

    return(value);
    delete(ptr);
    throw(exception);
    

    Ich persönlich tendiere eher dazu, wenig Klammern zu verwenden. Wo ich sie z.B. einsetze, ist

    bool varIsBig = (var > 10000);
    

    Das finde ich übersichtlicher als

    bool varIsBig = var > 10000;
    

    Oder bei komplexeren Ausdrücken generell, hier für den ternären Operator:

    function(x, y, (x+y < 20 || x == y) ? x+y : x-y);
    

    Bei so vielen Operatoren verliere ich sonst schnell den Blick für das Wesentliche.

    function(x, y, x+y < 20 || x == y ? x+y : x-y);
    

    Wie handhabt ihr eigentlich die Initialisierung mit Werten, wenn eine implizite Konvertierung existiert?

    std::string text = "hallo";
    

    Oder doch eher Konstruktorsyntax?

    std::string text("hallo");
    


  • Nachdem sich noch keiner den dummen Scherz erlaubt hat, muss ich wohl 🙂

    return ((((((((42)))))))); // sure is sure
    


  • hustbaer schrieb:

    return ((((((((42)))))))); // sure is sure
    

    😃 👍



  • Nexus schrieb:

    Wie handhabt ihr eigentlich die Initialisierung mit Werten, wenn eine implizite Konvertierung existiert?

    std::string text = "hallo";
    

    Oder doch eher Konstruktorsyntax?

    std::string text("hallo");
    

    Also ich find, wenn man schon eine implizite Konvertierung zulässt, dann sollte dem auch nachkommen.

    Und wenn ich einen Konstruktur benötige, der einen Parameter erwartet, ihn aber nie für die implizite Konvertierung verwende, würde ich ihn auch als "explict" definiern.

    Und was meinen die Anderen dazu ? :p



  • Die Konstruktorsyntax macht dann aber auch manchmal Probleme, bspw. wenn man den Standardkonstruktor damit aufrufen will (wenn wir schon bei lustigen Klammern sind...)

    std::string mystr();
    

    MfG SideWinder


  • Mod

    sizeof(exp)
    

    oder

    sizeof exp
    

    ?





  • camper schrieb:

    sizeof(exp)
    

    oder

    sizeof exp
    

    ?

    So tun als ob es eine Funktion ist und natürlich Klammern setzen! 😉



  • Im Grunde ist es ja wirklich nur eine Frage des Geschmacks. Ich bevorzuge ganz klar die return-Variante ohne Klammern, dafür krieg ich aber Herzflimmern bei einem sizeof ohne Klammern, auch wenn's eigentlich ein Keyword ist und keine Funktion. Konstruktoren kriegen bei mir grundsätzlich Klammern verpasst, das soll mich daran erinnern, dass sie auch wirklich initialisiert sind 🙂


Anmelden zum Antworten