Du solltest wissen
Möchte man mit Hilfe eines Konstruktors, bestimmte Attribute beim Erzeugen des Objekts, mit Werten belegen, dann gibt es dafür mehrere Möglichkeiten.
Auto::Auto(int t, float tk, std::string m){
tueren = t;
tank = tk;
marke = m;
}
In diesem Beispiel, würde man die Werte als Argumente an den Konstruktor übergeben und dieser würde unsere Attribute dann mit den Werten initialisieren.
Jedoch wäre das unsauber, denn wir würden Parameternamen verwenden, welche die Lesbarkeit reduzieren. Ein Entwickler der deinen Code ließt(oder du selbst nachdem du ihn länger nicht bearbeitet hast), könnte sich an der Stelle Fragen, “Ok wofür stand t nochmal?”. In diesem Beispiel ist es zwar offentsichtlich, da man es aus dem Kontext herleiten kann(wir weisen t dem Attribut tueren zu), aber ohne Kontext wird das schon schwerer.
Alternativ können wir das Gleiche mit einer Initialisierungsliste umsetzen. Eine Initialisierungsliste hat die Aufgabe Attribute mit Werten zu initialisieren. Daher werden diese in Konstruktoren verwendet. Initialisieren bedeutet, dass man einer Variablen einen Wert zuweist.
Auto::Auto(int tueren, float tank, std::string marke)
: tueren(tueren), tank(tank), marke(marke)
{
}
Dafür schreibt man einen Doppelpunkt hinter die Runde Klammer der Parameterliste, gefolgt von dem Attributnamen mit zwei Runden Klammern und dem Parameternamen innerhalb der Klammer.
Auf diese Art können wir den gleichen Namen für das Attribut und den Parameter verwenden. Der Compiler kann das Attribut tueren() vom Parameter tueren(tueren) unterscheiden.
Es gibt mehrere Gründe dafür Initialisierungslisten einzusetzen:
Falls du mehr zu Themen der Informatik lesen willst, kannst du die Suche dafür verwenden:
Du bist der Meinung, das war der Beste Beitrag zum Thema Informatik den du jemals gelesen hast? Dann ist die einzig logische Schlussfolgerung, diesen Beitrag mit deinen Kommilitonen zu teilen. Oder auch nicht mach was du willst, ich bin nicht dein Dad.