Introducere în Copy Constructor în C ++

Limbajele de programare ne oferă diferite caracteristici care pot fi puse la punct pentru dezvoltarea aplicației. În cazul limbilor de nivel mediu, caracteristicile pot fi mai puțin comparate cu limbile de nivel înalt, dar orice opțiuni pe care le oferă sunt ample pentru a dezvolta aplicații semnificative. În această secțiune, vom învăța despre constructori de copiere. Constructorul poate fi definit ca funcția specială care are un nume la fel ca acela al clasei în care a fost definit. Constructorul este numit automat atunci când este inițializat obiectul clasei respective. S-ar putea spune că inițializarea obiectului dacă clasa apelează implicit la constructor. Dacă constructorul este suprasolicitat decât în ​​acest caz, valorile trebuie trecute împreună cu obiectul în timp ce îl inițializează. Aici, tipul de constructor pe care îl vom învăța este foarte unic și este cunoscut sub numele de Constructor de copiere. Acest constructor funcționează folosind alte obiecte decât valori normale.

Cum funcționează Copy Constructor în C ++?

Copy Constructor poate fi definit ca tipul special de constructor care este folosit pentru a declara obiectul și inițializa același lucru folosind alte obiecte. Constructorul normal numit atunci când obiectul clasei respective este inițializat. Dacă constructorul este supraîncărcat cu mai mulți parametri decât inițializarea obiectului și trecerea aceluiași număr de argumente va apela parametrul de suprasarcină. Deoarece constructorul de copie este cel supraîncărcat, ar putea fi numit atunci când obiectul este inițializat folosind argumentul și argumentul trebuie să treacă valoarea obiectului, mai degrabă decât orice valoare normală.

Odată ce valoarea primită de parametrul constructorului supraîncărcat este găsit un obiect, constructorul de copiere va fi apelat și setul de declarații definite în cadrul constructorului de copie va începe să se execute. Înainte de a folosi constructorul de copiere trebuie să creăm un obiect din aceeași clasă. Acesta precizează clar abordarea conform căreia orice program care este destinat să implementeze un constructor de copiere ar trebui să aibă, de asemenea, un constructor implicit sau parametrizat, astfel încât obiectul să poată fi creat, care va ajuta la implicarea constructorului de copiere.

Scenariul de ansamblu poate fi considerat ca exploatarea unui obiect pentru a crea un alt obiect. Toate valorile legate cu obiectul folosit pentru inițializarea obiectului de către constructorul de copiere sunt alocate obiectului inițializat recent. Aceasta înseamnă că dacă valoarea oricărei variabile este folosită de primul obiect, aceeași variabilă poate fi folosită de obiectul inițializat de constructorul de copiere. Caracteristica constructorului de copii este considerată foarte importantă și face dezvoltarea foarte convenabilă pentru unele aplicații. Caracteristicile sale de a utiliza obiectul de referință al aceleiași clase ajută la dezvoltarea aplicației care are cerința care poate fi îndeplinită folosind doar constructorul de copiere. Deși nu este pârghiat la fel de des ca constructorul implicit sau parametrizat, este o putere suficientă pentru a contribui la adăugarea unei noi funcționalități la aplicație.

Exemplu

Să înțelegem conceptul de constructor de copii folosind exemplul. Aici vom lucra la un exemplu simplu care vă va arăta cum funcționează constructorul de copiere și cum poate accesa valorile care au fost legate de obiect folosind care este creat noul obiect de către constructorul de copiere. Ilustrația de mai jos vă va oferi o idee despre modul în care este diferit să apelați constructorul de copii în comparație cu apelarea constructorului supraîncărcat normal.

Program

#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )
#include
using namespace std;
class Check
(
public:
int val;
Check(int a)
(
val=a;
)
Check(Check &i)
(
val = i.val;
)
);
int main()
(
int add_val;
Check a1(50);
Check a2(a1);
add_val = a2.val + 10;
cout< )

În acest program, am apelat la constructorul parametrizat ocolind argumentul prin a1. Valoarea trecută este un număr întreg, întrucât constructorul parametrizat a fost definit pentru a accepta doar un număr întreg. Când valoarea 50 este transmisă constructorului, valoarea a fost atribuită variabilei numită var. Apoi obiectul a1 a fost trecut constructorului de copiere prin a2. Odată ce referința la obiect este primită de constructorul de copiere, a legat valoarea alocată cu primul obiect cu obiectul nou format. Acesta este un exemplu simplu pentru a explica conceptul constructorului de copii. Poate fi folosit în mai multe alte programe pentru a obține diverse funcționalități în aplicație.

ieşire:

60

Reguli și regulamente pentru copia constructorului în C ++

Copy Constructor este considerat un pic diferit de constructorul implicit sau parametrizat. Pe de o parte, când constructorul normal funcționează folosind valoarea tipului de date obișnuit, pe de altă parte, constructorul de copiere funcționează folosind obiectul creat anterior din aceeași clasă. Lucrul care trebuie să fie asigurat în timpul utilizării constructorului de copiere este, parametrii trecuți prin constructorul de copiere ar trebui să fie utilizați împreună cu un semn ampersand (&), deoarece este un caracter special care este folosit pentru a reține referința obiectului. Dacă ampersand nu este utilizat în timpul implementării constructorului de copiere, acesta nu va mai fi un constructor de copiere, dar va fi considerat automat ca un constructor parametrizat.

Când vine vorba de apelarea constructorului de copii, trebuie să ne asigurăm că valoarea transmisă ca argumente ar trebui să poarte referința obiectului și nu orice valoare care aparține tipului de date comun. Acestea sunt puținele lucruri care trebuie luate în considerare foarte accentuat în timpul implementării constructorului de copii în limbajul de programare C ++. De asemenea, de fiecare dată când folosim constructorul de copiere, trebuie să ne asigurăm că îl diferențiem corect de constructorul parametrizat, deoarece, în caz contrar, acesta va schimba total funcționalitatea programului și va duce la o generare incorectă de ieșire.

Concluzie

Constructorul de copiere este considerat ca un tip special de constructor care funcționează folosind referința obiect din aceeași clasă. Este utilizat pentru a aduce mai multe funcționalități în aplicație. Dacă este comparat cu constructorul implicit, constructorul de copiere nu este utilizat foarte des în programele simple, ci când vine vorba de dezvoltarea de aplicații complexe care trebuie să fie implementate în mediul de producție, constructorul de copiere este folosit acolo și face ca dezvoltarea aplicațiilor să fie destul de convenabilă. .

Articole recomandate

Acesta este un ghid pentru copia constructori în C ++. Aici discutăm introducerea și modul în care funcționează constructorul de copiere în C ++ împreună cu regulile și regulamentul pentru constructorul de copiere din C ++. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Copiați constructorul în Java
  2. Copiază constructor în C #
  3. Constructor în C ++
  4. Utilizarea constructorului în C
  5. Tipuri de constructor în C # cu implementarea codului