Der Konstruktor und Destruktor in C ++

Bewerten Sie diesen Artikel




c ++ Klassenkonstruktor, c ++ Klasse destructor, und Destruktor Klasse c ++
Sie haben vielleicht bemerkt, dass die Definition Klasse, wir können ihre Felder nicht initialisieren (Mitglieder) in der Definition. Sie können einen Wert zuweisen, die entsprechende Methode der Klasse zu schreiben und ruft seine, nach der Erstellung des Objekts außerhalb der Klasse. Ein solches Verfahren ist nicht bequem, seit der Ankündigung, lassen Sie uns sagen, 33 Klassenobjekt haben wir 33 mal die Methode aufzurufen, die Werte auf Felder der Klasse zuweist. deshalb, allgemein, zu initialisieren Klassenfelder, sowie dynamische Zuweisung von Speicher für, gebrauchte Designer.

Konstrukteur (durch Konstrukt - schaffen) – Es ist eine spezielle Klassenmethode, das läuft automatisch, wenn Sie ein Objekt der Klasse erstellen. Also, Wenn wir es verschreiben, welche Werte es notwendig ist, die Felder in der Klasse des Objekts Ad zu initialisieren, es funktioniert ohne “besondere Einladung”. Es ist nicht erforderlich, um speziell verursachen, als eine normale Klassenmethode.

Beispiel:

Linien 11 – 17 Wir definieren einen Konstruktor: der Name muss mit dem Klassennamen identisch sein; Designer hat keinen Rückgabetyp (einschließlich nichtig). Ein Objekt wird einmal während der Klassendefinition deklariert – Reihe 25. Wenn das Programm startet, Konstruktor dieses Objekt wird noch vor dem Eingang zum Hauptfunktion arbeiten. Dies kann im folgenden Screenshot zu sehen:

c ++ Klassenkonstruktor, c ++ Klasse destructor, und Destruktor Klasse c ++

Programm noch nicht vor der Zeile erreicht 29 setlocale(LC_ALL, "rus"); , und der Konstruktor bereits “berichtet”, das hat funktioniert (Kyrillisch wurde falsch angezeigt). On line 30 – aussehen, daß enthalten die Klasse des Feldes. Das zweite Mal, wenn der Designer in Linie arbeiten 32, bei der Objekterstellung obj2.

destructor (von destruct – vernichten) – als Sonderklasse Methode, die arbeitet bei der Zerstörung der Objektklasse. In den meisten Fällen ist es die Rolle der, In den freien dynamischen Speicher, die für das Objekt Konstruktor zugewiesen. seinen Namen, als Designer, müssen Sie den Klassennamen übereinstimmen. Kurz bevor der Name des Symbols sollte hinzugefügt werden, ~

Zusätzlich zu den vorherigen destructor Code. Und erstellen Sie die Klasse zwei Konstruktoren: wird man Parameter übernehmen, zweite – Nein.

Der Destruktor wird in Linien definiert 34 – 37. Der Einfachheit halber zeigt es nur die Zeichenfolge an Stelle der Programm, wo die Arbeit. Reihe 43 – Wir erklären das Klassenobjekt und übergeben Sie die Daten in das Feld geschrieben werden. Hier ist der Designer wird mit den Parametern arbeiten. Im Einklang 46 – löste einen Default-Konstruktor.

c ++ Klassenkonstruktor, c ++ Klasse destructor, und Destruktor Klasse c ++

sichtbar, automatisch zweimal, dass die destructor wird geladen (weil das Programm Objektklasse hatte zwei). Er löst dann, wenn das Arbeitsprogramm abgeschlossen ist und alle Daten zerstört.

ein wichtiger:

  • Der Konstruktor und Destruktor sollte Öffentlichkeit;
  • Der Konstruktor und Destruktor haben keine Rückgabetyp;
  • Klassennamen, und Destruktor müssen übereinstimmen;
  • Der Konstruktor erwartet Parameter. Destructor nimmt keine Parameter;
  • Bei der Definition eines destructor, bevor der Name des Symbols hinzugefügt werden soll ~ ;
  • Designer können etwas sein, aber ihre Unterschrift müssen unterschiedlich sein (Die Anzahl der Parameter genommen, beispielsweise);
  • Die destructor in der Klasse darf nur eine definiert werden.

Zur Unterstützung unserer Website – klicken Sie auf das Sparschwein und wählen Sie eine beliebige bequeme Weise.

Newsletter neue Lektionen über die Programmierung:

PureCodeCpp – Die Grundlagen der Programmierung in C ++ für Anfänger

6 Gedanken zu "Der Konstruktor und Destruktor in C ++

  1. Ich verstehe, ich bin der Autor leben in verschiedenen Zeitzonen, und dann habe ich ein anderes 09.11.14
    Spaß :)

  2. >> Ein Objekt wird einmal während der Klassendefinition deklariert - line 25. Wenn Sie das Programm der Designer dieses Objekt ausgeführt wird noch vor dem Eingang zum Hauptfunktion arbeiten.

    Es ist nicht wichtig, Recht “Bestimmen während” oder später. Wird aufgerufen, bevor er, denn es ist ein globales Objekt.

  3. >> In den meisten Fällen ist es die Rolle der, In den freien dynamischen Speicher, die für das Objekt Konstruktor zugewiesen.

    Wenn das Objekt in einem Speicher zugewiesen – ja, Ich brauche ein destructor Hände zu schreiben und lassen Sie ihn.
    Aber in Ihrem Fall wird der Haufen nicht zugeordnet, müssen aber noch eine destructor (er muss zerstören richtig das Objekt). Aber Ihr Beispiel könnte es sein, und nicht schreiben – Wenn kein destructor in der Klasse – es wird eine Standard-destructor erstellen – er wird das richtige Objekt entfernen, aber die Erinnerung, dynamisch natürlich verteilt befreit.

    Allerdings gibt es in C ++ Smart-Pointer, und wenn sie zu benutzen – es ist fast immer möglich, auf dem Standard-destructor verlassen )).

    Nicht durch eine Menge von Fragen zu dem Thema des Artikels betroffen, beispielsweise:
    – Konstruktorinitialisierung Liste;
    – virtuelle destructor;
    – Kopierkonstruktors;
    – Standardkonstruktoren;
    – Ausnahmen in Konstruktoren und Destruktoren;
    – t .P.

    Es wird alles erklärt? )

    1. Dieses nette Smiley am Ende eines Kommentars…

      natürlich, Artikel noch. Der Copy-Konstruktor – sicher sein, einen gesonderten Artikel zu berücksichtigen. Über den Standard-Konstruktor – Ich füge zu diesem Artikel.

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>