Ce este supraîncărcarea constructorului în C++: caracteristici și tipuri

Publicat: 2021-05-24

C++ este un limbaj de programare orientat pe obiecte folosit în mod obișnuit în industrie. C++ este un limbaj de programare de pionier în OOP, dezvoltat de Bjarne Stroustrup la AT & T Bell Laboratories în anul 1979 . Cea mai des folosită caracteristică a c++ ar putea fi crearea unei clase în ea. În cadrul unei clase, putem crea membri ai clasei – metode și variabile.

Cuprins

Introducere

Constructorii sunt adesea folosiți pentru a crea obiecte sau, din punct de vedere tehnic, pentru a crea instanțe ale unui obiect. În majoritatea limbajelor de programare orientate pe obiecte, acestea sunt, de asemenea, supraîncărcate. Ca în multe limbaje de programare, numele constructorului este predeterminat pe baza celui al clasei. Acest lucru limitează obiectele numite, deoarece poate exista un singur constructor. Într-un scenariu în care sunt necesari mai mulți constructori, aceștia sunt implementați folosind funcțiile de supraîncărcare.

În C++, constructorii impliciti sunt fără parametri. Acestea sunt instanțiate de la membrii obiectului cu valorile implicite corespunzătoare.

Puteți avea o idee corectă despre supraîncărcarea conceptelor utilizate în programarea orientată pe obiecte.

Constructor

Un constructor (ctor) este o tehnică de programare utilizată pentru a crea un obiect în programarea orientată pe obiecte bazată pe clasă. Un nou obiect este creat prin apelarea unei subrutine cu scop special. Este o funcție membră a unei clase care, la rândul său, inițializează obiectele unei clase. Această metodă acceptă argumente. Parametrii furnizați sunt utilizați de către constructorul de bază și variabilele membre ale setului.

Caracteristicile constructorului

Un constructor este o funcție membru specială a clasei. Este diferită de o funcție de membru generică din următoarele motive:

  • Membrul constructorului este public
  • Are același nume cu cel al clasei declarante.
  • Numele este sensibil la majuscule
  • Constructorii nu au un tip de returnare.
  • Constructorul implicit este creat implicit.
  • Când se creează un obiect, constructorul este apelat automat.
  • Un constructor nu este implicit moștenit.
  • De obicei, are reguli diferite pentru modificatorii domeniului.

Tipuri de constructori

Constructori impliciti – Constructorul având parametri zero și fără argumente. Sunt constructori impliciti generați de compilator.

Constructorii parametrizați sunt cei prin care puteți trece argumente. Argumentele inițializează un obiect care a fost creat. Creați un constructor parametrizat pur și simplu adăugându-i parametri, așa cum facem pentru orice altă funcție. Utilizați parametrii din corpul constructorului pentru a inițializa obiectul. Acest tip de constructor este folosit în mod obișnuit pentru supraîncărcare și, de asemenea, pentru inițializarea diferitelor elemente de date ale obiectelor cu valori inițiale diferite.

Copy Constructor – Este o funcție membru folosită pentru a inițializa un obiect folosind un alt obiect din aceeași clasă. Compilatorul, implicit, creează un constructor de copiere pentru fiecare clasă, urmând o copie în funcție de membri între obiecte.

Constructor în C++

În c++, un constructor este apelat automat atunci când un obiect (adică instanța unei clase) îl creează.

Dacă nu specificăm un constructor, compilatorul c++ generează un constructor implicit pentru noi (nu se așteaptă la niciun parametri și are numele clasei).

Un constructor scris corect lasă obiectul rezultat într-o stare validă.

Supraîncărcarea constructorului

Supraîncărcarea constructorului este un fenomen de supraîncărcare a unui constructor pe alt constructor.

Constructorul dat poate fi supraîncărcat, similar cu supraîncărcarea funcției.

Constructorii supraîncărcați urmează același nume ca și cel al clasei. Cu toate acestea, variază în mai multe argumente. În timpul creării unui obiect, tipul de argumente transmise determină ce constructor este apelat.

Disponibilitatea mai multor constructori cu parametri diferiți ajută la îndeplinirea diferitelor sarcini în programare.

Supraîncărcarea constructorului în C++

În c++, există mai mulți constructori într-o clasă sub același nume, dar o listă diferită de argumente. Acest concept de supraîncărcare a constructorului în c++ este destul de similar cu supraîncărcarea funcțiilor.

De obicei, ar trebui să creați mai mult de un constructor într-o clasă pentru a inițializa variabilele membre în mod diferit pentru obiecte. Criteriul pentru a se comporta diferit constructorii este de a avea un număr diferit de parametri sau poziționare diferită sau tipuri de date diferite pentru parametri.

Constructorii care creează cu fermitate obiecte folosind o singură clasă și returnează o nouă instanță a clasei sunt abstrași de industrie, care creează obiecte, dar pot face diferite moduri folosind diferite clase sau diferite scheme de alocare, cum ar fi pool-urile de obiecte.

Cum funcționează supraîncărcarea constructorului în C++?

Să luăm în considerare exemplul prezentat mai jos:

Codul a ilustrat un exemplu de supraîncărcare a constructorului în c++ .

Există 2 constructori ai clasei „calculate”:

  1. Un constructor implicit (fără parametri)
  2. Constructorul cu trei parametri

Și în main() există două obiecte create.

1. afară:

Când este creat, va invoca automat constructorul implicit fără parametri. Acest lucru se datorează faptului că în timpul creării unui obiect, nu este trecut niciun parametru. Deci, se potrivește cu definiția first(Default Constructor). Aceasta va atribui 0 valori tuturor celor trei variabile pentru acel obiect al clasei principale.

2. out2:

Când este creat, va invoca automat constructorul cu 3 parametri. Acest lucru se datorează faptului că în timpul creării unui obiect, este trecut doar 1 parametru. Deci, se potrivește cu definiția celui de-al doilea constructor. Aceasta va aloca 3 valori (trese ca parametri) variabilei pentru acel obiect al clasei principale.

Învață cursuri de inginerie software online de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Înțelegerea conceptului de programare pentru supraîncărcarea constructorului în c++ este o abilitate semnificativă pentru programatori și designeri de sistem. Studenții din fluxul de programe informatice și de calcul își pot îmbunătăți abilitățile și credibilitatea tehnică, cum ar fi conceptele POO și optimizarea codului. Resursele și baza de cunoștințe de la portalul upGrad încurajează astfel de profesioniști să dobândească expertiza în programare pentru a concura pe piața industriei. În plus, veți obține o oportunitate de a explora relațiile profesionale și dezvoltarea abilităților.

Dacă sunteți interesat să aflați mai multe despre dezvoltarea de software full-stack, consultați programul Executive PG de la upGrad și IIIT-B în dezvoltarea de software full-stack, care este conceput pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, peste 9 proiecte și misiuni, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Ce sunt constructorii în programare?

Constructorii din programare sunt funcțiile al căror scop principal este inițializarea obiectului și realizarea altor sarcini simple. Constructorii sunt utilizați pentru programarea orientată pe obiecte, care este o paradigmă de programare populară utilizată. Un program orientat pe obiecte conține astfel obiecte care au, la rândul lor, proprietăți, metode și evenimente. Pentru a crea un obiect, trebuie să folosiți un constructor și pentru a putea folosi obiectul trebuie să îl instanțiați.

Ce este supraîncărcarea constructorului?

Supraîncărcarea constructorului înseamnă a avea mai mult de un constructor cu același nume. Constructorii sunt metode invocate atunci când este creat un obiect. Trebuie să utilizați același nume pentru toți constructorii, care este numele clasei. Acest lucru se face prin declararea constructorului cu un număr diferit de argumente. Dacă nu există argumente de transmis, atunci constructorul implicit este invocat. Dacă există un singur argument, atunci constructorul care ia un singur argument este invocat. Dacă există două sau mai multe argumente, atunci constructorul care ia exact două sau mai multe argumente este invocat.

Cum să inițializezi obiecte folosind constructori?

Constructorii sunt cruciali atunci când vine vorba de inițializarea claselor dvs. Sunt un tip special de funcție care este folosit pentru a crea și inițializa obiecte. Uneori nu vrem să creăm toate câmpurile din clasă pentru că nu sunt necesare. Dacă creăm toate câmpurile, ar trebui să le inițializam toate. În acest caz, folosim constructorul implicit și inițializam câmpurile după cum dorim. Când creați o clasă, puteți crea unul sau mai mulți constructori în interiorul clasei. Astfel, atunci când creați obiecte pentru acea clasă particulară, puteți apela cu ușurință constructorul acesteia împreună cu argumentele pe care doriți să le setați. Aceste argumente pot fi setate ca valori ale câmpurilor sau atributelor clasei al cărei constructor este apelat.