Standartkonstruktor



  • hey,
    mir ist heute aufgefallen, das der Standartkonstruktor sehr einem normalen Konstruktor mit vordefinierten Werten ist: (int a = 10);
    Wenn man nichts angibt ist es 10 (ähnlich wie nichts angeben und dann 10 zuweißen(standartkonstruktor))
    aber man kann trotzdem was angeben und es so selber füllen.
    Was benutzt ihr eher?
    Könnt ihr was dazu sagen?
    Oder hab ich da nur was verwechselt 😕



  • Ich kann dir nicht so ganz folgen...
    Ist der "Normale" Konstruktor nicht der "Standartkonstruktor"...
    Definiere normal...



  • Wenn du nix angibts ist es nicht 10 sondern irgendwas zufälliges. Bei dir wohl zufällig 10 😃



  • Warum steht eigentlich da was zufaelliges?
    (Bitte antwortet nicht mit "warum nicht" oder "weil nichts eingegeben wurde")



  • meine sowas wie

    //Standartkonstuktor
    Klasse class {
        private: int alter;
    }
    
    Klasse::Stdk() {
       int alter = 10;
    }
    //Normaler Kontruktor
    Klasse::Nk(int alter = 10) {
    }
    

    Bei dem normalen braucht man auch nichts anzugeben um alter mit 10 zu initialiseren aber man KANN, so wie bei Standartkonstruktoren + normalen Kontruktoren



  • sry, das standart bezog sich natürlich auf Stdk



  • Mit einem Konstruktor "kann" man sachen initialisieren, man muss nicht.
    man kann auch andere Sachen machen, wenn ein Objekt erzeugt wird, zb einfach ausgeben, dass etwas erzeugt wurde.



  • standard!1!! 😡



  • Also das was du hast hat ja nichts mit einem Konstruktor zu tun.

    Aber falls du das meinst:

    struct foo{
    	int n;
    
    	foo ():n(0){}
    	foo (int i):n(i){}
    	foo (int i = 2){} //ill-formed
    };
    

    Bei der 3. Variante mit dem Zuweisen weiss der Compiler nicht, welchen er aufrufen soll. Und im übrigen weist du dort foo::n eh keinen Wert direkt zu. Dafür musst du die Initialisierungslite benutzen. (Wie in den anderen 2 Konstruktoren).
    Initialisierungslisten sind dazu da, um benutzt zu werden.



  • Nabend,

    Quellcode schrieb:

    Warum steht eigentlich da was zufaelliges?
    (Bitte antwortet nicht mit "warum nicht" oder "weil nichts eingegeben wurde")

    weil du nicht weisst, was an der Speicherstelle gerade steht.

    gruss
    v R



  • virtuell Realisticer schrieb:

    weil du nicht weisst, was an der Speicherstelle gerade steht.

    Achso... gibt es auch (durch zufall bedingt) Speicherstellen an denen nichts steht, oder werden die Stellen alle vorher mit irgendwas gefüllt?



  • Quellcode schrieb:

    virtuell Realisticer schrieb:

    weil du nicht weisst, was an der Speicherstelle gerade steht.

    Achso... gibt es auch (durch zufall bedingt) Speicherstellen an denen nichts steht, oder werden die Stellen alle vorher mit irgendwas gefüllt?

    Da steht IRGENDETWAS drin. Wenn da zufälligerweise 0 drin steht ist das purer Zufall. Da wird eben mit nix gefüllt.



  • Quellcode schrieb:

    virtuell Realisticer schrieb:

    weil du nicht weisst, was an der Speicherstelle gerade steht.

    Achso... gibt es auch (durch zufall bedingt) Speicherstellen an denen nichts steht, oder werden die Stellen alle vorher mit irgendwas gefüllt?

    Definiere "nichts".

    Irgend ein Bitmuster wird an der Speicherstelle schon zu finden sein und dieses
    wird entsprechend dem Datentyp der Variablen interpretiert. Was dort zu Anfang
    vorzufinden ist, ist halt nicht definiert.

    gruss
    v R


Anmelden zum Antworten