Il costruttore e distruttore in C ++




C ++ costruttore della classe, C ++ distruttore di classe, costruttore e distruttore di classe C ++
Avrete notato, che definire classe, Non siamo in grado di inizializzare i suoi campi (membri) nella definizione. È possibile assegnare un valore per loro, написав соответствующий метод класса и вызвав его, dopo la creazione dell'oggetto all'esterno della classe. Tale metodo non è conveniente, dal momento che l'annuncio, diciamo, 33 объекта класса нам придется 33 volte a chiamare il metodo, который присваивает значения полям класса. pertanto, generalmente, для инициализации полей класса, а так же для выделения динамической памяти, designer ha utilizzato.

Конструктор (dal costrutto - creare) – Si tratta di un metodo di classe speciale, который выполняется автоматически в момент создания объекта класса. cioè, Se si prescrivono, quali valori è necessario inizializzare i campi nella classe dell'oggetto Ad, funziona senza “invito speciale”. Non è necessario provocare specificamente, come metodo di classe normale.

esempio:

linee 11 – 17 definiamo un costruttore: имя должно быть идентично имени класса; конструктор НЕ имеет типа возвращаемого значения (compresi vuoto). Un oggetto viene dichiarato una volta durante la definizione della classe – fila 25. Quando il programma viene avviato, costruzione di questo oggetto funzionerà anche prima dell'ingresso alla funzione principale. Questo può essere visto nella seguente schermata:

C ++ costruttore della classe, C ++ distruttore di classe, costruttore e distruttore di classe C ++

programma non ha ancora raggiunto prima della riga 29 setlocale(LC_ALL, "rus"); , e il costruttore già “segnalati”, che ha funzionato (Cirillico è stato visualizzato in modo errato). on line 30 – guardare, che contengono la classe del campo. La seconda volta il progettista lavorerà in linea 32, durante la creazione di oggetti obj2.

distruttore (da destruct – distruggere) – come metodo di classe speciale, che opera nella distruzione della classe Object. Nella maggior parte dei casi è il ruolo, di memoria dinamica libera, che vengono assegnati per il costruttore dell'oggetto. il suo nome, come il progettista, deve corrispondere al nome della classe. Poco prima del nome del simbolo deve essere aggiunto ~

L'aggiunta al codice distruttore precedente. E creare la classe di due costruttori: один будет принимать параметры, secondo – no.

Il distruttore viene definita nelle righe 34 – 37. Per semplicità mostra solo la stringa sul posto del programma, dove il lavoro. fila 43 – Dichiariamo l'oggetto della classe e passare i dati da scrivere nel campo. Qui il progettista funzionerà con i parametri. in linea 46 – innescato un costruttore di default.

C ++ costruttore della classe, C ++ distruttore di classe, costruttore e distruttore di classe C ++

visibile, che il distruttore verrà caricato automaticamente due volte (perché la classe oggetto programma aveva due). Он срабатывает тогда, quando il programma di lavoro è completato e tutti i dati vengono distrutti.

un importante:

  • Конструктор и деструктор должны быть pubblico;
  • Il costruttore e distruttore non hanno un tipo di ritorno;
  • nomi delle classi, costruttore e distruttore devono corrispondere;
  • Il costruttore accetta i parametri. Destructor non accetta parametri;
  • При определении деструктора перед именем надо добавить символ ~ ;
  • I progettisti possono essere un po ', ma la loro firma deve essere diverso (количеством принимаемых параметров, per esempio);
  • Деструктор в классе должен быть определен только один.

Per sostenere il nostro sito – cliccare sul salvadanaio e scegliere qualsiasi modo conveniente.

Newsletter nuove lezioni sulla programmazione:


Accetto di ricevere messaggi da purecodecpp.com sulla mia e-mail

PureCodeCpp – Le basi della programmazione in C ++ per i principianti

data
pagina
Il costruttore e distruttore in C ++
valutazione
5

6 pensieri su "Il costruttore e distruttore in C ++

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

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

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

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

  3. >> Nella maggior parte dei casi è il ruolo, di memoria dinamica libera, che vengono assegnati per il costruttore dell'oggetto.

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

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

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

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

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

      naturalmente, еще будут статьи. Il costruttore di copia – обязательно в отдельной статье рассмотрим. О конструкторах по умолчаниюдобавлю в эту статью.

Lascia un Commento

Inserire il codice nei tag: <pre class="lang:C ++ decodifica:true ">IL TUO CODICE</pre>