Konstruktor

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von R2Dzwo, 5. Mai 2006 .

  1. 5. Mai 2006
    hi,
    wer kennt sich nen konstruktor aus?
    muss nen programm schreiben wo 2konstruktor drin sind.
    Kann mir mal jmd nen beispiel-code zeigen.Is egal welches, hauptsache man sieht wie es geht
    MFG
     
  2. 5. Mai 2006
    Tach

    also ein Konstruktor ist praktisch eine Funktion mit der, ein Objekt, bei seine Instanziierung Initialisiert werden kann (also kann dem angelegten Objekt dabei direkt ein Inhalt zugewiesen werden).

    Das könnte z.B. so aussehen:

    struct datum
    {
    int tag;
    int monat;
    int jahr;

    datum() // erster Konstruktor
    {
    tm h = heute_datum();
    tag = h.tm_mday;
    monat = h.tm_mon+1;
    jahr = h.tm_year+1900;
    }

    datum(int t, int m, int j) // zweiter Konstruktor
    {
    tag = t;
    monat = m;
    jahr = j;
    }
    }

    mit dem ersten Konstruktor kann man die Struktur ohne weitere Parameterangabe anlegen:
    datum heute; // durch diesen Aufruf wird ein Objekt vom Typ datum angelegt und mit dem
    // aktuellen Datum initialisiert

    datum weihnachten2005(24,12,2005); // Diese Instanz wird direkt mit dem Übergebenen Datum initialisiert

    Ob der Code so direkt funktioniert weiß ich jetzt nicht. Ich wollte nur erst mal das Grundprinzip aufzeigen was ein Construktor ist und wie das prinzipiell funktioniert.
     
  3. 5. Mai 2006
    thx erstmal....grundprinzip ist mir klar.
    Ersten Konstruktor bekomme ich auch noch alleine hin und das ich ihn ausgebe auch noch aber halt den zweiten nicht.
     
  4. 6. Mai 2006
    tja der will nicht so wie ich will..*lach*
    naja ich kann den nicht ausgeben also anzeigen lassen bzw werte zuweiesen
    bsp. im ersten konstruktor möchte ich typ='h';
    und im zweiten möchte ich typ='j';
    so und die möchte ich im HP ausgeben.
     
  5. 6. Mai 2006
    Sei mal ein bisschen konkreter (und zeige Code..) Sonst können wir dein Problem schlecht analysieren.
    Und was ist HP? Und was ist nach deiner Definition ein "zweiter" Konstruktor?

    Wie du es beschrieben hast, sollte so funktionieren.

    Code:
    #include <iostream>
    
    class Foo {
     char typ;
    public:
     Foo() {
     typ = 'h';
     }
    
     Foo(char typ) : typ(typ)
     {}
    
     inline char getTyp() const {
     return typ;
     }
    };
    
    std::ostream& operator<<(std::ostream& os, Foo& foo) {
     os << foo.getTyp();
     
     return os;
    }
    
    int main() {
     Foo foo, foo_('j');
    
     std::cout << foo << " " << foo_ << std::endl;
    }
    
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.