Der Konstruktor und Destruktor in C ++




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, написав соответствующий метод класса и вызвав его, nach der Erstellung des Objekts außerhalb der Klasse. Ein solches Verfahren ist nicht bequem, seit der Ankündigung, lassen Sie uns sagen, 33 объекта класса нам придется 33 mal die Methode aufzurufen, который присваивает значения полям класса. deshalb, allgemein, для инициализации полей класса, а так же для выделения динамической памяти, gebrauchte Designer.

Конструктор (durch Konstrukt - schaffen) – Es ist eine spezielle Klassenmethode, который выполняется автоматически в момент создания объекта класса. 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: имя должно быть идентично имени класса; конструктор НЕ имеет типа возвращаемого значения (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, во время создания объекта 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: один будет принимать параметры, 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). Он срабатывает тогда, wenn das Arbeitsprogramm abgeschlossen ist und alle Daten zerstört.

ein wichtiger:

  • Конструктор и деструктор должны быть Öffentlichkeit;
  • Der Konstruktor und Destruktor haben keine Rückgabetyp;
  • Klassennamen, und Destruktor müssen übereinstimmen;
  • Der Konstruktor erwartet Parameter. Destructor nimmt keine Parameter;
  • При определении деструктора перед именем надо добавить символ ~ ;
  • Designer können etwas sein, aber ihre Unterschrift müssen unterschiedlich sein (количеством принимаемых параметров, beispielsweise);
  • Деструктор в классе должен быть определен только один.

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

Newsletter neue Lektionen über die Programmierung:


Ich bin damit einverstanden, Nachrichten zu empfangen von purecodecpp.com auf meine E-Mail

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

Datum
Seite
Der Konstruktor und Destruktor in C ++
Wertung
5

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

  1. Я так понял я с автором живу в разных часовых поясах, а то у меня еще 09.11.14
    Забавно :)

    1. dass – у нас тут в стране восходящего солнца 10-е наступило на 2 дня раньше )) А завтра так вообще 31-е декабря будет!

  2. >> Один объект объявляется сразу во время определения класса – строка 25. При запуске программы конструктор этого объекта сработает даже до входа в главную функцию.

    Совсем не важно сразуво время определенияили потом. Вызывается он раньше, потому что это глобальный объект.

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

    Если объект выделяет внутри себя памятьто да, надо писать руками деструктор и освобождать ее.
    Но в вашем случае динамическая память не выделяется, а деструктор таки нужен (он корректно должен уничтожить объект). Но в вашем примере его можно было и не писать вовсеесли деструктора в классе нетто будет создан деструктор по умолчаниюон удалит корректно объект, но память, распределенную динамически естественно не освободит.

    Однако есть в С++ умные указатели и если использовать ихто почти всегда можно полагаться на деструктор по умолчанию )).

    Не затронута куча вопросов по теме статьи, beispielsweise:
    список инициализации конструктора;
    виртуальный деструктор;
    – Kopierkonstruktors;
    конструкторы по умолчанию;
    исключения в конструкторах и деструкторах;
    т .п.

    Оно все будет описано? )

    1. этот милый смайлик в конце комментария

      natürlich, еще будут статьи. Der Copy-Konstruktor – обязательно в отдельной статье рассмотрим. О конструкторах по умолчаниюдобавлю в эту статью.

Hinterlasse eine Antwort

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