Che cos'è il sovraccarico del costruttore in C++: caratteristiche e tipi

Pubblicato: 2021-05-24

C++ è un linguaggio di programmazione orientato agli oggetti comunemente usato nel settore. C++ è un linguaggio di programmazione pionieristico in OOP, sviluppato da Bjarne Stroustrup presso AT & T Bell Laboratories nell'anno 1979 . La caratteristica più usata di c++ potrebbe essere quella di creare una classe al suo interno. All'interno di una classe, possiamo creare membri di una classe: metodi e variabili.

Sommario

introduzione

I costruttori vengono spesso utilizzati per creare oggetti o, tecnicamente, per creare istanze di un oggetto. Nella maggior parte dei linguaggi di programmazione orientati agli oggetti, sono anche sovraccarichi. Come in molti linguaggi di programmazione, il nome del costruttore è predeterminato in base a quello della classe. Ciò limita gli oggetti denominati in quanto può esistere un unico costruttore. In uno scenario in cui sono richiesti più costruttori, vengono implementati usando le funzioni di sovraccarico.

In C++, i costruttori predefiniti sono senza parametri. Vengono istanziate dai membri dell'oggetto con i valori predefiniti corrispondenti.

Puoi avere una buona idea di sovraccaricare i concetti utilizzati nella programmazione orientata agli oggetti.

Costruttore

Un costruttore (ctor) è una tecnica di programmazione utilizzata per creare un oggetto nella programmazione orientata agli oggetti basata su classi. Un nuovo oggetto viene creato chiamando una subroutine speciale. È una funzione membro di una classe che, a sua volta, inizializza gli oggetti di una classe. Questo metodo accetta argomenti. I parametri forniti vengono utilizzati dal costruttore di base e impostano le variabili membro.

Caratteristiche del costruttore

Un costruttore è una funzione membro speciale della classe. È diverso da una funzione membro generica per i seguenti motivi:

  • Il membro del costruttore ha l'ambito pubblico
  • Ha lo stesso nome di quello della classe dichiarante.
  • Il nome fa distinzione tra maiuscole e minuscole
  • I costruttori non hanno un tipo restituito.
  • Il costruttore predefinito viene creato in modo implicito.
  • Quando si crea un oggetto, il costruttore viene chiamato automaticamente.
  • Un costruttore non viene ereditato in modo implicito.
  • Di solito ha regole diverse per i modificatori di ambito.

Tipi di costruttori

Costruttori predefiniti : il costruttore con parametri nulli e nessun argomento. Sono costruttori impliciti generati dal compilatore.

I costruttori parametrizzati sono quelli attraverso i quali puoi passare argomenti. Gli argomenti inizializzano un oggetto che è stato creato. Crea un costruttore parametrizzato semplicemente aggiungendo parametri ad esso, come facciamo per qualsiasi altra funzione. Utilizzare i parametri nel corpo del costruttore per inizializzare l'oggetto. Questo tipo di costruttore è comunemente usato per sovraccaricare e anche per inizializzare vari elementi di dati di oggetti con valori iniziali diversi.

Costruttore di copia : è una funzione membro utilizzata per inizializzare un oggetto utilizzando un altro oggetto della stessa classe. Il compilatore, per impostazione predefinita, crea un costruttore di copia per ogni classe, seguendo una copia tra gli oggetti a livello di membro.

Costruttore in C++

In c++, un costruttore viene chiamato automaticamente quando un oggetto (cioè l'istanza di una classe) lo crea.

Se non specifichiamo un costruttore, il compilatore c++ genera per noi un costruttore predefinito (non si aspetta parametri e ha il nome della classe).

Un costruttore scritto correttamente lascia l'oggetto risultante in uno stato valido.

Sovraccarico del costruttore

Il sovraccarico del costruttore è un fenomeno in cui un costruttore sovraccarica un altro costruttore.

Il costruttore dato può essere sovraccaricato, in modo simile all'overloading della funzione.

I costruttori sovraccaricati seguono lo stesso nome di quello della classe. Tuttavia, varia in diversi argomenti. Durante la creazione di un oggetto, il tipo di argomenti passati determina quale costruttore viene chiamato.

La disponibilità di più costruttori con parametri diversi aiuta a svolgere compiti diversi nella programmazione.

Sovraccarico del costruttore in C++

In c++, ci sono più costruttori in una classe con lo stesso nome ma un diverso elenco di argomenti. Questo concetto di sovraccarico del costruttore in c++ è abbastanza simile all'overloading delle funzioni.

Di solito, dovresti creare più di un costruttore in una classe per inizializzare le variabili membro in modo diverso per gli oggetti. Il criterio per comportarsi diversamente dai costruttori consiste nell'avere un numero diverso di parametri o un posizionamento diverso o tipi di dati diversi per i parametri.

I costruttori che creano saldamente oggetti utilizzando una singola classe e restituiscono una nuova istanza della classe vengono astratti dall'industria, che crea oggetti ma può eseguire modi diversi utilizzando classi diverse o schemi di allocazione diversi, come pool di oggetti.

Come funziona il sovraccarico del costruttore in C++?

Consideriamo l'esempio come mostrato di seguito:

Il codice ha illustrato un esempio di sovraccarico del costruttore in c++ .

Ci sono 2 costruttori della classe “calculate”:

  1. Un costruttore predefinito (senza alcun parametro)
  2. Il Costruttore con tre parametri

E in main() ci sono due oggetti creati.

1. fuori:

Quando viene creato, invocherà automaticamente il costruttore predefinito senza parametri. Questo perché durante la creazione di un oggetto, non viene passato alcun parametro. Quindi, corrisponde alla definizione di first (Costruttore predefinito). Questo assegnerà 0 valori a tutte e tre le variabili per quell'oggetto della classe principale.

2. out2:

Quando viene creato, invocherà automaticamente il costruttore con 3 parametri. Questo perché durante la creazione di un oggetto viene passato solo 1 parametro. Quindi, corrisponde alla definizione del Secondo Costruttore. Questo assegnerà 3 valori (passati come parametri) alla variabile per quell'oggetto della classe principale.

Impara i corsi di ingegneria del software online dalle migliori università del mondo. Guadagna programmi Executive PG, programmi di certificazione avanzati o programmi di master per accelerare la tua carriera.

Conclusione

Comprendere il concetto di programmazione per l' overloading del costruttore in c++ è un'abilità significativa per programmatori e progettisti di sistemi. Gli studenti nel flusso di programmi informatici e relativi all'informatica possono migliorare le proprie capacità e credibilità tecnica, come i concetti OOP e l'ottimizzazione del codice. Le risorse e la base di conoscenze del portale upGrad incoraggiano tali professionisti ad acquisire le competenze di programmazione per competere nel mercato del settore. Inoltre, avrai l'opportunità di esplorare il networking professionale e lo sviluppo delle competenze.

Se sei interessato a saperne di più sullo sviluppo di software full-stack, dai un'occhiata al programma Executive PG di upGrad & IIIT-B in Full-stack Software Development, progettato per i professionisti che lavorano e offre oltre 500 ore di formazione rigorosa, oltre 9 progetti e incarichi, stato di Alumni IIIT-B, progetti pratici pratici e assistenza sul lavoro con le migliori aziende.

Cosa sono i costruttori nella programmazione?

I costruttori nella programmazione sono le funzioni il cui scopo principale è inizializzare l'oggetto ed eseguire altri semplici compiti. I costruttori vengono utilizzati per la programmazione orientata agli oggetti, che è un paradigma di programmazione popolare utilizzato. Un programma orientato agli oggetti contiene quindi oggetti che a loro volta hanno proprietà, metodi ed eventi. Per creare un oggetto, è necessario utilizzare un costruttore e per poter utilizzare l'oggetto è necessario crearne un'istanza.

Che cos'è il sovraccarico del costruttore?

L'overloading del costruttore significa avere più di un costruttore con lo stesso nome. I costruttori sono metodi invocati quando viene creato un oggetto. Devi usare lo stesso nome per tutti i costruttori che è il nome della classe. Questo viene fatto dichiarando il costruttore con un numero diverso di argomenti. Se non ci sono argomenti da passare, viene richiamato il costruttore predefinito. Se è presente un singolo argomento, viene richiamato il costruttore che accetta un singolo argomento. Se sono presenti due o più argomenti, viene richiamato il costruttore che accetta esattamente due o più argomenti.

Come inizializzare gli oggetti usando i costruttori?

I costruttori sono fondamentali quando si tratta di inizializzare le classi. Sono un tipo speciale di funzione che viene utilizzata per creare e inizializzare oggetti. A volte non vogliamo creare tutti i campi della classe perché non sono necessari. Se creiamo tutti i campi, dovremmo inizializzare tutti i campi. In questo caso, utilizziamo il costruttore predefinito e inizializziamo i campi come vogliamo. Quando crei una classe, puoi creare uno o più costruttori all'interno della classe. Pertanto, quando crei oggetti per quella particolare classe, puoi facilmente chiamare il costruttore di quello insieme agli argomenti che vuoi impostare. Questi argomenti possono essere impostati come valori dei campi o attributi della classe il cui costruttore è chiamato.