Copia array di costruttori in C ++

Copia array di costruttori in C ++
I costruttori di copie sono costruttori che vengono utilizzati per duplicare l'oggetto corrente di una classe specifica. È generalmente nel formato z (z &), dove z è il nome di classe. Tutte le classi hanno un costruttore di copie standard specificato dal compilatore. Il costruttore di copie è identico al costruttore standard, con l'eccezione che l'argomento sarebbe un altro elemento di array e l'array creato di recente è stato regolato alle dimensioni del tipo di dati del parametro e dichiarato al contenuto dell'array del parametro. Usando diversi esempi, discuteremo del costruttore di copie e delle sue categorie in questo articolo.

Utilizzando il costruttore di copie

In C ++, il costruttore di copie viene utilizzato per duplicare il contenuto da un oggetto all'altro. Ora, guardiamo un esempio per dimostrare come usare il costruttore di copie profonde.

Prima di tutto, abbiamo integrato il file di intestazione per le funzionalità di input e output. Dopo questo, abbiamo usato lo spazio dei nomi standard. Ora, dichiareremo una classe "stanza". Abbiamo inizializzato la lunghezza e la larghezza della stanza e abbiamo messo in privato. Il tipo di dati di lunghezza e larghezza è "doppia" qui.

Ora, abbiamo dichiarato la "lunghezza" e la "larghezza" della variabile utilizzando il costruttore parametrizzato. Qui, abbiamo passato questi parametri al costruttore "stanza" e questo è destinato a essere pubblico. Oltre a ciò, abbiamo utilizzato un costruttore di copie. Copiamo il contenuto dell'argomento "obj". La funzione calcolatearea () viene chiamata per trovare l'area della stanza moltiplicando il valore della lunghezza per il valore dell'altezza.

Nel passaggio successivo, abbiamo dichiarato la funzione principale (). Qui, abbiamo costruito un oggetto della classe "Room" e abbiamo anche specificato i valori della sua lunghezza e larghezza. Ora, devi solo copiare i dati da "Room1" a "Room2". Dopo questo, abbiamo utilizzato "cout" per visualizzare le aree di entrambe le stanze. Alla fine, il return0 viene utilizzato per terminare il programma.

Usa il costruttore di copie superficiali

Quando una classe non interagisce dinamicamente con l'allocazione della memoria, viene utilizzato il costruttore di copie poco profonde. Due oggetti nel costruttore di copie superficiali si riferirebbero a un indirizzo di memoria simile. I riferimenti agli elementi reali vengono replicati in una copia superficiale. Un costruttore di copie standard è specificato dal compilatore. È una replica un po 'per bit di una cosa. Di seguito, viene utilizzata un'istanza per illustrare la nozione di un costruttore di copie superficiali.

All'inizio del programma, abbiamo introdotto due biblioteche richieste e . Insieme a questo, abbiamo anche utilizzato uno spazio dei nomi standard. Ora abbiamo creato una classe chiamata "Computer". Abbiamo costruito un puntatore della classe e impostato il suo tipo di dati "carattere".

Abbiamo dichiarato pubblicamente la funzione del "computer" di classe e qui abbiamo superato il costruttore definito come parametro a questa funzione. Abbiamo creato un'allocazione di memoria dinamica qui e la impostata uguale alla variabile del puntatore. Permette all'utente di creare una memoria per un attributo o persino un array nel programma.

Inoltre, abbiamo applicato la funzione void concatenate (). Per concatenare due stringhe, abbiamo utilizzato il metodo Strcat (). Ora, abbiamo dichiarato un costruttore di copie del "computer" di classe. Per mostrare l'output, abbiamo utilizzato la funzione Display void () insieme all'istruzione 'cout'. Ora è il momento di chiamare la funzione principale (). Abbiamo utilizzato il costruttore di copie all'interno del corpo della funzione principale (). È definito un costruttore perché viene utilizzato per generare un oggetto.

Quindi, il costruttore di copie come suggerisce il nome, genera un nuovo oggetto che è una replica identica della copia originale. Abbiamo creato due oggetti e specificato i valori di questi oggetti. Quindi, abbiamo applicato la funzione Display () singolarmente su questi oggetti per ottenere il risultato.

Nel passaggio successivo, A1 è allettante da concaterare, quindi abbiamo applicato la 'A1.funzione concatenate () '. Qui, abbiamo anche impostato una "tecnologia" per la concatenazione. Abbiamo nuovamente utilizzato il metodo Display () per ottenere l'output. Ora, finiamo il programma usando "return 0".

Usa il costruttore di copie profonde

La copia profonda richiede uno spazio di memoria univoco per i dati duplicati. Di conseguenza, l'originale e la copia sono distinti. Le modifiche implementate in una regione di memoria non hanno alcun impatto sulla replica. Utilizzeremmo un costruttore di copie definito dall'utente durante la costruzione di memoria dinamica con puntatori. Entrambe le entità si riferivano a posizioni separate nella memoria.

Inoltre, utilizziamo lo spazio dei nomi standard. Ora faremo una classe chiamata 'ProgrammingLanguage.'Abbiamo creato un puntatore di classe e definito il suo tipo di dati su' carattere.Quindi, abbiamo definito la funzione della classe "ProgrammingLanguage" come pubblico e abbiamo fornito il costruttore specificato come argomento.

Qui, abbiamo costruito un'allocazione di memoria dinamica e allocato equivalente alla variabile puntatore. Ci consente di acquisire l'archiviazione per un set di dati o un array nel programma. La funzione è chiamata qui e il costruttore della classe di programmazione è dato come parametro. Abbiamo utilizzato il metodo vuoto Concatenate ().

Inoltre, utilizzeremo la tecnica Strcat () per concatenare due corde insieme. Ora abbiamo creato un costruttore di copie della classe "ProgrammingLanguage". I dati vengono visualizzati utilizzando il metodo Display () void e il comando 'cout'. La funzione principale () verrà ora chiamata. Nel corpo della funzione principale (), abbiamo usato il costruttore di copie. Questo duplica un oggetto predefinito. Quindi, normalmente non vorremmo modificare l'oggetto reale. Facciamo due oggetti e assegniamo l'oggetto "A1" il valore "Python.'L'oggetto' a2 'è uguale all'oggetto' a1 'nella fase successiva.

Per ottenere l'output, abbiamo utilizzato il metodo Display () su ciascuno di questi oggetti individualmente. Ora abbiamo utilizzato il comando "return 0" per uscire dal programma.

Conclusione

In questo articolo, abbiamo chiarito il funzionamento di un costruttore di copie in linguaggio C ++. Ogni volta che viene realizzato un oggetto, un costruttore è una forma specifica di una classe derivata che viene dichiarata istantaneamente. I costruttori di copie sono quei costruttori che verranno utilizzati per replicare un elemento di una classe specificata che esiste già. Abbiamo anche osservato come utilizzare il costruttore di copie superficiali e il costruttore di copie profonde con l'aiuto di diverse istanze.