www.wikidata.de-de.nina.az
Die Initialisierungsliste ist eine Spezialitat der Programmiersprache C Sie kommt ausschliesslich in Konstruktoren vor und hat die Aufgabe die Konstruktion von Vorfahren Klassen eingebetteten Elementen und Referenzen zu regeln Hintergrund BearbeitenIm Gegensatz zu C wo man eine Variable deklarieren kann ohne sich zunachst um ihre Initialisierung zu kummern gibt es in C Falle in denen eine sofortige Initialisierung notig ist In C ist es moglich Variablen per Deklaration unveranderlich zu machen Das geschieht durch Voranstellen des Schlusselwortes const Man muss einer solchen Variable allerdings mit der Deklaration bereits einen Wert zuweisen Referenzen nennt man in C vereinfacht ausgedruckt Zeiger die nie null sein konnen ihnen muss bereits zum Zeitpunkt der Deklaration ein Objekt oder eine bereits bestehende Referenz zugewiesen werden Klassen konnen von ihrem Entwickler so gestaltet werden dass sie zur Konstruktion von Objekten Initialisierungswerte ubergeben bekommen mussen Ein Beispiel ware eine Klasse Bruch bei der man von Anfang an sicherstellen will dass im Nenner keine Null steht das kann in C mittels Konstruktor unter Verwendung von Exceptions erreicht werden Finden solch restriktive Deklarationen in einer Klassendefinition statt Vererbungsbeziehung Element Deklaration wird die Definition der entsprechenden Initialisierungswerte auf den Konstruktionszeitpunkt verschoben es muss ein Konstruktor definiert werden Vor dem Beginn des Konstruktor Korpers werden Initialisierungen von Basisklassen und konstanten bzw Referenzelementen in Form einer Liste vorgenommen Beispiel BearbeitenDie Klasse A verfugt uber eine Basisklasse B die einen Konstruktor definiert ein Element der Klasse E die einen Konstruktor definiert ein konstantes Element c ein Referenz Element rdie uber die Initialisierungsliste im Codebeispiel gelb hinterlegt mit Initialisierungswerten versorgt werden mussen class B public Der Compiler erkennt automatisch dass mit b b die Elementvariable b mit dem Parameter b initialisiert werden soll Dieser Mechanismus heisst argument dependent name lookup B int b b b int b class E public E int ein e e ein e int e class A public B public C public D public E public A int b int ein e int ein c int amp ein r B b e ein e c ein c r ein r E e const int c int amp r Abgerufen von https de wikipedia org w index php title Initialisierungsliste amp oldid 210778973