Default Initialisierung für alle Variablen


  • Mod

    Idee schrieb:

    SeppJ schrieb:

    Idee schrieb:

    Du hast nicht ständig irgendwelche Defaults, sondern nur, wenn die Variable jetzt nicht initialisiert wird. Nicht initialisierte Variablen verursachen Bugs, die nur manchmal auftreten und schwer zu finden sind.

    Super 🙄 . Laufzeitkosten um vermeintliche Anfängerprogrammierfehler abzufangen, die, wenn Fortgeschrittene sie machen, dann doch keine sind, sondern eine bewusste Entscheidung des Programmierers. Um welche Sprache geht es? Basic? Java?

    Das kann man zu compilezeit machen. 🙄

    Speicherstellen zur Compilezeit ändern?

    Ich hab geschrieben, dass man es mit einem keyword einschaltet.

    Ahh, du meinst so wie ein Debugmodus? Also das, was es schon in so ziemlich jedem Compiler gibt?

    Idiotenhaufen

    Bloß weil du unrecht hast, macht das andere nicht zu Idioten. Du hättest etwas über die Gründe erfahren können, wieso das in C++ so ist und nicht anders. Aber du weißt ja anscheinend jetzt schon alles, was es auf der Welt zu wissen gibt, besser als jeder andere Mensch.



  • 🙄 Ich hab geschrieben, dass man es mit einem keyword einschaltet.

    Supi, müllen wir die Sprache weiter mit unnötigen Features und Keywords voll.

    Aber vergesst es. Irgendjemand will was an C++ ändern. Das brauchen wir Profis nicht, wir machen nie Flüchtigkeitsfehler. 🙄

    Idiotenhaufen.

    Du bist nur ein rabulistischer Troll der kein C++ kann und jetzt die Sprache auf den Kopf stellt, damit er sie nicht lernen muss wie sie ist. Denkst du, wenn du hier mit richtiger Grammatik und halbwegs nachvollziehbaren Ideen kommst, wirst du die Sprache verändern, die sowieso schon dafür berüchtigt ist zu einem Monster auszuarten?



  • Sone schrieb:

    🙄 Ich hab geschrieben, dass man es mit einem keyword einschaltet.

    Supi, müllen wir die Sprache weiter mit unnötigen Features und Keywords voll.

    Nein, nein, wir brauchen dafür kein Keyword!
    Das Feature gibt es doch schon längst.
    Nennt sich Konstruktor.



  • Nennt sich Konstruktor.

    Geh' mir ja weg mit diesem Teufelszeug! RAII...



  • Die ganze Sprache ist darauf konzipiert, dass möglichst wenig für einen getan wird. Das macht ja gerade die Mächtigkeit von C und C++ aus. Man bezahlt nur für das, was man auch selber so gewollt hat.

    Große Macht bedeutet dann eben auch große Verantwortung. Wer diese nicht tragen kann, der muss halt wirklich Basic programmieren.



  • SeppJ schrieb:

    Idiotenhaufen

    Bloß weil du unrecht hast, macht das andere nicht zu Idioten. Du hättest etwas über die Gründe erfahren können, wieso das in C++ so ist und nicht anders. Aber du weißt ja anscheinend jetzt schon alles, was es auf der Welt zu wissen gibt, besser als jeder andere Mensch.

    Ich weiß warum das in C++ so ist. Ich weiß nicht alles, aber viel mehr als du denkst.

    Ich habe hier schon gesagt, dass C++ ein NULL-Pointer keyword haben sollte, aber dann kamen hier die C++ Fanboy-Idioten, die das für Javamüll gehalten haben. Unnötige keywords, bla bla... Jetzt gibt es NULL-Pointer keyword im neuen Standard.

    Ich habe hier schon gesagt, dass lokale Funktions Deklarationen nicht kompilieren sollen, weil sie ohne lokale Funktions Definitionen nichts bringen. Kamen wieder C++ Fanboyidioten mit total abstrusen Codebeispielen wo sie das brauchen könnten. Seitenlange Diskussionen bis am Ende volkard sagte, das er auch findet, dass lokale Funktions Deklarationen nicht kompilieren sollten und plötzlich waren die dummen Fanboys still.

    Jetzt kommen wieder solche Experten.

    Nathan schrieb:

    Sone schrieb:

    🙄 Ich hab geschrieben, dass man es mit einem keyword einschaltet.

    Supi, müllen wir die Sprache weiter mit unnötigen Features und Keywords voll.

    Nein, nein, wir brauchen dafür kein Keyword!
    Das Feature gibt es doch schon längst.
    Nennt sich Konstruktor.

    Ich bleib dabei.

    Idee schrieb:

    Idiotenhaufen.



  • Idee schrieb:

    Nathan schrieb:

    Sone schrieb:

    🙄 Ich hab geschrieben, dass man es mit einem keyword einschaltet.

    Supi, müllen wir die Sprache weiter mit unnötigen Features und Keywords voll.

    Nein, nein, wir brauchen dafür kein Keyword!
    Das Feature gibt es doch schon längst.
    Nennt sich Konstruktor.

    Ich bleib dabei.

    Idee schrieb:

    Idiotenhaufen.

    Du schreibst: Ich will ein Keyword mit dem alle Variablen initialisiert werden.
    Wir schreiben: Das braucht man nicht.
    Du beleidigst uns.
    Sone schreibt: Feature ist unnötig.
    Ich schreib: Gibts schon.
    Du beleidigst uns.
    🙄
    Ich werde versuchen was konstruktives zu schreiben.
    Du wirst uns beleidigen.
    -> Ich lass es.



  • Warum gibt es in C++ nicht ein keyword, damit in einer Klasse,Methode/Namespace,Funktion alle uninitialisierten Variablen mit Defaultwerten initialisiert werden?

    Ach und was ist der beste default-Wert. Warum 0 und nicht 1?

    Das brauchen wir Profis nicht, wir machen nie Flüchtigkeitsfehler

    Ich halte mich fuer einen Profi. Ich vergesse nicht, Variablen zu initialisieren. Bei anderen scheint der Debugmodus und die IDE solche Fehler aufzudecken. Zauberei ist dafuer nicht erforderlich. Allen ist geholfen ohne Sprachaenderung.



  • Seitenlange Diskussionen bis am Ende volkard sagte, das er auch findet, dass lokale Funktions Deklarationen nicht kompilieren sollten und plötzlich waren die dummen Fanboys still.

    Mir fällt auf Anhieb ein Grund dafür ein, ein natürlich selten gebrauchter aber trotzdem gültiger Grund.
    Edit: Nein, ich hatte einen Denkfehler, Grund fällt weg.

    Was volkard sagt, ist Leuten, die die Meinung allen Ernstes vertreten, nicht wichtiger als andere. Schon gar, wenn er keine Begründung mitliefert, was du nicht direkt implizierst.

    Ich habe hier schon gesagt, dass C++ ein NULL-Pointer keyword haben sollte, aber dann kamen hier die C++ Fanboy-Idioten, die das für Javamüll gehalten haben.

    nullptr ist auch nicht einfach nur irgendein Keyword, dass die Syntax schöner macht, wie du es (bestimmt) wolltest.



  • Wozu Keyword?

    template <typename T, T Val>
    struct defaulted {
      T data;
      defaulted() : data(Val) {}
      defaulted(defaulted const& o) : data(o.data) {}
      defaulted& operator=(defaulted const& o) { data = o.data; return *this; }
      operator T&()             { return data; }
      operator const T&() const { return data; }
    };
    
    int main()
    {
      defaulted<int, 4> i; // int mit Default-Wert 4, auch als Klassenmember erlaubt
                           // Leider nur bis C++03 sinnvoll
      i += 3;
      std::cout << i << '\n';
    }
    

    nullptr ist auch nicht einfach nur irgendein Keyword, dass die Syntax schöner macht, wie du es (bestimmt) wolltest.

    In meinen vielen Zeilen Code, die ich mit C++11 geschrieben habe, hatte ich nullptr genau nullmal gebraucht.


Anmelden zum Antworten