Was ist das hier?

  • Eine Plattform von Flensburger Studenten für Flensburger Studenten
  • Ein Wiki zum Sammeln von Wissen
  • Ein Forum zum Austausch
  • Eine Wissensdatenbank zum Informatikstudium:
    • Programmieren in C, C#, PHP, Javascript, HTML, CSS
    • Datenbanken und Abfragen mit SQL
    • 2D / 3D - Gestaltung
    • Mathe, Physik, Gerätetechnik, RoBs
    • Audio- / Videotechnik
    • ...und vieles mehr

Anmelden

Warum registrieren?

Weil besser als gut!

 

Initialisierung (C++)

Die Initialisierung von Objekten (Attributen) wurde bisher im Rumpf von Konstruktoren ausgeführt.

Zur Erinnerung: in der Klassendeklaration können keine Initialwerte angegeben werden, da diese dann für alle Objekte der Klasse gelten würden - gefragt ist aber eine objektspezifische Initialisierung.

In folgenden Fällen ist die bisherige Konstruktorinitialisierung ungünstig oder gar nicht möglich:

  • im Rumpf eines Konstruktors kann nur per Zuweisung an deklarierte Attribute initialisiert werden, was aber für Konstanten und Referenzen nicht möglich ist
  • Objekte können Objekte enthalten ('Aggregate', s. strings in obigen Beispielen), die auch initialisiert werden müssen. Standardmäßig wird für Aggregate der Default-Konstruktor automatisch ausgeführt, im Konstruktor der äußeren Klasse können dann die Werte geändert werden (per Methodenaufruf, Copy Konstruktor, ... )

Aber: Aggregate ohne Default Konstruktor sind von diesem Verfahren ganz ausgenommen !

Initialisierungsliste

Konstruktordefinitionen (nur bei Konstruktoren) können mit einer Initialisierungsliste versehen werden, die noch vor Eintritt in den Rumpf ausgeführt wird.

Diese Liste kann verwendet werden zur Initialisierung von:

  • Attributen aus Standarddatentypen
  • Aggregaten (Aufruf spezifischer Konstruktoren)
  • Konstanten
  • Referenzen

Die Syntax der Initialisierungsliste kann auch sonst verwendet werden:

C++
int i = 42; oder int i(42);
double d = 12.34; oder double d(12.34);

Ein Beispiel ist in der Quellcode-Sammlung verfügbar: init_list.cpp.


Kategorie: Programmieren2
| Mehr

Zahlen & Daten

  • 364 Seitenaufrufe
  • 1122 Tage alt
  • 4 Versionen
  • Letzte Änderung: 23.04.2009 um 09:35 Uhr

Publish