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, scrivere il metodo appropriato della classe e chiamando il suo, dopo la creazione dell'oggetto all'esterno della classe. Tale metodo non è conveniente, dal momento che l'annuncio, diciamo, 33 struttura di classe, abbiamo 33 volte a chiamare il metodo, che assegna i campi della classe. pertanto, generalmente, per inizializzare i campi di classe, così come per isolare il mucchio, designer ha utilizzato.

progettista (dal costrutto - creare) – Si tratta di un metodo di classe speciale, che viene eseguito automaticamente quando si crea un oggetto della classe. 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: nome deve essere identico al nome della classe; Progettista non ha un tipo di ritorno (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: uno riceverà parametri, 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). Ha poi spara, quando il programma di lavoro è completato e tutti i dati vengono distrutti.

un importante:

  • Il costruttore e distruttore dovrebbe essere 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;
  • Quando si definisce un distruttore prima del nome del simbolo deve essere aggiunto ~ ;
  • I progettisti possono essere un po ', ma la loro firma deve essere diverso (numero di parametri ricevuti, per esempio);
  • Distruttore della classe deve essere definito un solo.

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

Newsletter nuove lezioni sulla programmazione:

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

Il costruttore e distruttore in C ++
4.2 (84%) 10 voti

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

  1. Capisco io sono l'autore dal vivo in diversi fusi orari, e poi ho un altro 09.11.14
    divertimento :)

    1. che – siamo qui nella terra del Sol Levante il 10 è venuto a 2 giorni precedenti )) E domani, in modo generale il 31 dicembre sarà!

  2. >> Un oggetto viene dichiarato una volta durante la definizione della classe - la linea 25. Quando si esegue il programma il progettista di questo oggetto funzionerà anche prima dell'ingresso alla funzione principale.

    Non importa a destra “durante la determinazione” o successivo. Chiamato prima che, perché è un oggetto globale.

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

    Se l'oggetto viene generato all'interno di una memoria – che, Ho bisogno di scrivere un distruttore mani e rilasciarlo.
    Ma nel tuo caso, la memoria dinamica non è allocato, ma ancora bisogno di un distruttore (egli deve distruggere l'oggetto correttamente). Ma nel tuo esempio non potrebbe scrivere a tutti – Se nessun distruttore della classe – si creerà un distruttore di default – rimuoverà l'oggetto corretto, ma la memoria, distribuito in modo dinamico libera naturalmente.

    Tuttavia, v'è in C ++ puntatori intelligenti, e quando usarli – è quasi sempre possibile fare affidamento sul distruttore di default )).

    non è influenzato da un sacco di domande sul tema di questo articolo, per esempio:
    – elenco di inizializzazione del costruttore;
    – distruttore virtuale;
    – costruttore di copia;
    – costruttori di default;
    – eccezioni in costruttori e distruttori;
    – t .p.

    Tutto sarà spiegato? )

    1. Questa faccina sorridente carino alla fine di un commento…

      naturalmente, altri articoli saranno. Il costruttore di copia – essere sicuri di prendere in considerazione un articolo separato. Circa il costruttore di default – Aggiunto a questo articolo.

  4. setlocale(LC_ALL, “rus”);
    qualcosa nell'esempio delle opere di codifica costruttore russo, e nell'esempio distruttore – no. =:(

    1. progettista (dal costrutto - creare) - è un metodo di classe speciale, che viene eseguito automaticamente quando si crea un oggetto della classe.

Lascia un Commento

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *