Inleiding tot Copy Constructor in C ++

De programmeertalen bieden ons verschillende functies die kunnen worden gebruikt om de applicatie te ontwikkelen. In het geval van talen op het middenniveau zijn de functies misschien minder in vergelijking met talen op hoog niveau, maar alle opties die ze bieden zijn voldoende om belangrijke toepassingen te ontwikkelen. In deze sectie zullen we leren over copyconstructors. De constructor kan worden gedefinieerd als de speciale functie met dezelfde naam als die van de klasse waarin is gedefinieerd. De constructor wordt automatisch aangeroepen wanneer het object van die klasse wordt geïnitialiseerd. Je zou kunnen zeggen dat het initialiseren van het object als de klasse impliciet de constructor aanroept. Als de constructor overbelast is, moeten de waarden in dat geval samen met het object worden doorgegeven tijdens het initialiseren. Hier is het type constructor dat we gaan leren zeer uniek en staat bekend als copy Constructor. Deze constructor werkt met andere objecten in plaats van normale waarden.

Hoe werkt Copy Constructor in C ++?

Copy Constructor kan worden gedefinieerd als het speciale type constructor dat wordt gebruikt om het object te declareren en hetzelfde te initialiseren met andere objecten. De normale constructor riep wanneer het object van die klasse wordt geïnitialiseerd. Als de constructor wordt overladen met verschillende parameters, wordt de parameter overbelasting aangeroepen door het object te initialiseren en hetzelfde aantal argumenten door te geven. Omdat copy constructor de overbelaste is, kan deze worden aangeroepen wanneer het object wordt geïnitialiseerd met behulp van het argument en het argument de objectwaarde moet doorgeven in plaats van een normale waarde.

Zodra de waarde die is ontvangen door de parameter van de overbelaste constructor een object heeft gevonden, wordt de copy constructor aangeroepen en wordt de set instructies die binnen de copy constructor is gedefinieerd, uitgevoerd. Voordat we copy constructor gebruiken, moeten we een object van dezelfde klasse maken. Het geeft duidelijk de benadering aan dat elk programma dat bedoeld is om copy constructor te implementeren ook een standaard of geparametriseerde constructor moet hebben, zodat het object kan worden gemaakt dat helpt bij het betrekken van de copy constructor.

Het algemene scenario kan worden beschouwd als het benutten van één object om een ​​ander object te maken. Alle waarden verbonden aan het object die worden gebruikt om het object te initialiseren door de constructor van de kopie, worden toegewezen aan het nieuw geïnitialiseerde object. Dat betekent dat als de waarde van een variabele wordt gebruikt door het eerste object, dezelfde variabele kan worden gebruikt door het object dat door de kopie-constructor wordt geïnitialiseerd. De functie van copy constructor wordt als zeer belangrijk beschouwd en maakt de ontwikkeling erg handig voor sommige toepassingen. De functies om de objectreferentie van dezelfde klasse te gebruiken, helpen bij het ontwikkelen van de applicatie die aan de eis voldoet waaraan alleen met de copyconstructor kan worden voldaan. Hoewel het niet zo vaak wordt gebruikt als de standaard of geparametriseerde constructor, is het voldoende macht om bij te dragen aan het toevoegen van nieuwe functionaliteit aan de applicatie.

Voorbeeld

Laten we het concept van copy constructor begrijpen aan de hand van het voorbeeld. Hier zullen we werken aan een eenvoudig voorbeeld dat u zal laten zien hoe de kopie-constructor werkt en hoe het toegang kan krijgen tot de waarden die aan het object waren gebonden, waarmee het nieuwe object door de kopie-constructor wordt gemaakt. De onderstaande afbeelding geeft u een idee over hoe het anders is om de kopie-constructor aan te roepen in vergelijking met het aanroepen van de normale overbelaste constructor.

Programma

#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< )

In dit programma hebben we de geparametriseerde constructor aangeroepen en het argument omzeild door a1. De doorgegeven waarde is een geheel getal omdat de geparametriseerde constructor is gedefinieerd om alleen een geheel getal te accepteren. Wanneer de waarde 50 wordt doorgegeven aan de constructor, is de waarde toegewezen aan de variabele met de naam var. Vervolgens is het object a1 via a2 aan de kopieerconstructor doorgegeven. Nadat de objectreferentie door de kopieermaker is ontvangen, is de waarde die is toegewezen aan het eerste object gekoppeld aan het nieuw gevormde object. Dit is een eenvoudig voorbeeld om het concept van de kopieerconstructeur uit te leggen. Het zou in verschillende andere programma's kunnen worden gebruikt om verschillende functionaliteiten in de applicatie te krijgen.

Output:

60

Regels en voorschriften voor Copy Constructor in C ++

Copy Constructor wordt beschouwd als een beetje anders dan de standaard of geparametriseerde constructor. Enerzijds, waar de normale constructor werkt met de waarde van het gemeenschappelijke gegevenstype, anderzijds werkt copy constructor met het eerder gemaakte object van dezelfde klasse. Het ding dat moet worden gewaarborgd tijdens het gebruik van de kopieconstructor, is dat de parameters die door de kopieconstructor worden doorgegeven, samen met een ampersand (&) -teken moeten worden gebruikt, omdat het een speciaal teken is dat wordt gebruikt om de objectreferentie te bevatten. Als ampersand niet wordt gebruikt tijdens de implementatie van de kopieerconstructor, is het niet langer een kopieerconstructor, maar wordt het automatisch beschouwd als een geparametriseerde constructor.

Als het aankomt op het aanroepen van de kopie-constructor, moeten we ervoor zorgen dat de waarde die als argumenten wordt doorgegeven, de objectverwijzing moet bevatten in plaats van elke waarde die hoort bij het algemene gegevenstype. Dit zijn de weinige dingen die zeer scherp moeten worden overwogen bij het implementeren van copy constructor in de programmeertaal C ++. Elke keer dat we de kopieerconstructor gebruiken, moeten we ervoor zorgen dat we deze op de juiste manier onderscheiden van de geparametriseerde constructor. Als dit niet lukt, verandert de functionaliteit van het programma volledig en wordt de uitvoer onjuist gegenereerd.

Conclusie

De kopie-constructor wordt beschouwd als een speciaal soort constructor die werkt met de objectreferentie van dezelfde klasse. Het wordt gebruikt om verschillende functionaliteiten in de applicatie te brengen. In vergelijking met de standaardconstructor wordt de kopieerconstructor niet vaak gebruikt in de eenvoudige programma's, maar als het gaat om het ontwikkelen van complexe applicaties die in de productieomgeving moeten worden geïmplementeerd, wordt de copy constructor daar gebruikt en maakt de applicatie-ontwikkeling ook erg handig .

Aanbevolen artikelen

Dit is een gids voor Copy Constructors in C ++. Hier bespreken we de introductie en hoe Copy Constructor werkt in C ++ samen met regels en voorschriften voor Copy Constructor in C ++. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Kopieer Constructor In Java
  2. Kopieer Constructor in C #
  3. Constructor in C ++
  4. Gebruik van Constructor in C
  5. Soorten constructor in C # met code-implementatie