Argumente bei Konstruktoren



  • zb das man beim aufruf einer klasse bereits variablen initialisieren kann

    class Klasse
    {
    private:
        int dings;
        int bums;
    protected:
        Klasse( int d, int b )
        {
            dings = d;
            bums = b;
        }
    };
    
    main
    Klasse kl( 4, 5 );
    //kl.dings == 4
    //kl.bums == 5
    


  • und hier mit Initialisierungsliste

    class Klasse
    {
    private:
        int dings;
        int bums;
    public:
        Klasse( int d, int b ) : dings(d), bums(b) {}
    };
    


  • neugierig schrieb:

    Hallo Leute:
    Was haben Argumente in Konstruktoren eig für einen Sinn?

    Vielen Dank

    Man könnte fast fragen: Wenn Konstruktoren keine Argumenten entgegennehmen könnten - was hätten sie dann für einen Sinn ?
    😉

    Gruß,

    Simon2.



  • Danke für die antworten, ja so hab ich mir das eh gedacht, nur in meinem c++-buch is ma vorkommen als ob sie meinen dass das eher optional ist und man alle vars sonst einfach mal mit 0 initalisiert. Wies dann weitergehen soll steht nicht drinnen.

    Dh: so lege ich fest welchen Typ die einzelnen Vars einer Klasse haben oder?



  • neugierig schrieb:

    ...
    Dh: so lege ich fest welchen Typ die einzelnen Vars einer Klasse haben oder?

    Neee, du setzt den Wert der Membervariablen.
    Der Typ ist durch die Klassendefinition festgelegt.

    Gruß,

    Simon2.



  • neugierig schrieb:

    Dh: so lege ich fest welchen Typ die einzelnen Vars einer Klasse haben oder?

    Nein.



  • Typ == int,char,...
    meinst du Wert?

    Man kann die Argumente benutzten um Variablen Werte zuzuweisen, ja.
    Und natürlich ist das optional, wenn es für die Klasse sinnvoller ist die
    Member mit 0 (oder mit nem anderen Wert den man schon vorher weis) zu initalisieren braucht man ja nicht nochmal extra ein Argument dafür.



  • Hmm aba um den vars Werte zuzuordnen brauch ich ja nicht unbedingt argumente oda?



  • k habs verstanden sry und thx



  • neugierig schrieb:

    Hmm aba um den vars Werte zuzuordnen brauch ich ja nicht unbedingt argumente oda?

    Um den Membern Werte zuzuweisen, brauchst du keine Ctor-Parameter (das kannst du mit einer Zuweisung oder Initialisierungsliste erledigen). Die Parameter brauchst du, damit das Hauptprogramm dem Ctor sagen kann, welche Werte er zuweisen soll.


Anmelden zum Antworten