Lassen Sie das Beispiel sein:Basisklasse auf der Initialisierungsliste einer abgeleiteten Klasse Copy-Konstruktor (C++)
class Base {
Base (const Base & copyFrom) { globalRegister (* this); }
}
class Derived {
Derived (const Derived & copyFrom) : Base (copyFrom) {}
}
ich Vorschläge gelesen habe die Basis des Copykonstruktor auf der Initialisierung Liste aufzunehmen von um Abgeleitet um die Eigenschaften der Base zu kopieren (wie im Beispiel).
Allerdings habe ich den Copy-Konstruktor der Base, der sich selbst (* this) an ein anderes Objekt übergibt (um mit diesem Objekt registriert zu werden). Wäre das ein Fall, in dem ich (implizit oder explizit) den Konstruktor von Base (Standard) in der Initialisierungsliste des Kopierkonstruktors von Derived benutzen und den Kopierkonstruktor der Base nur im Rumpf des Kopierkonstruktors von Derived aufrufen muss, wenn es tatsächlich ein Objekt gibt das kann von Base's Kopierkonstruktor angehängt werden? Else - ist (* das) ein gültiges Objekt?
Sie übergeben '* this' nicht aus' Base's Initialisierungsliste, richtig? –
@ John Dibling: Nein, es ist im Körper von Base's Kopierkonstruktor. –