Introduktion till Copy Constructor i C ++

Programmeringsspråken ger oss olika funktioner som kan utnyttjas för att utveckla applikationen. När det gäller språk på medelnivå kan funktionerna vara mindre jämfört med språk på hög nivå, men de alternativ som de erbjuder är tillräckligt för att utveckla betydande applikationer. I det här avsnittet kommer vi att lära oss om copy-konstruktörer. Konstruktören kan definieras som den speciella funktionen som har namnet lika som den för klassen i vilken har definierats. Konstruktören anropas automatiskt när objektet för den klassen initieras. Det kan sägas att initialisera objektet om klassen implicit kallar konstruktören. Om konstruktören är överbelastad än i så fall måste värdena passeras tillsammans med objektet medan det initialiseras. Här är den typ av konstruktör vi kommer att lära oss mycket unik och kallas copy Constructor. Denna konstruktör arbetar med andra objekt snarare än normala värden.

Hur fungerar Copy Constructor i C ++?

Copy Constructor kan definieras som den speciella typen av konstruktör som används för att förklara objektet och initialisera detsamma med andra objekt. Den normala konstruktören ringde när objektet för den klassen initieras. Om konstruktören är överbelastad med flera parametrar än att initialisera objektet och passera samma antal argument kommer överbelastningsparametern att ringas. Eftersom kopieringskonstruktör är den överbelastade, så det kan kallas när objektet initialiseras med argumentet och argumentet måste passera objektvärdet snarare än något normalt värde.

När det värde som mottagits av parametern för den överbelastade konstruktören hittats ett objekt, kommer kopieringskonstruktören att anropas och uppsättningen av uttalanden definierade i kopieringskonstruktören kommer att börja köras. Innan vi använder kopieringskonstruktör måste vi skapa ett objekt av samma klass. Den anger tydligt metoden att alla program som är avsedda att implementera kopieringskonstruktör också bör ha en standard- eller parametrerad konstruktör så att objektet kan skapas vilket kan hjälpa till att involvera kopieringskonstruktören.

Det övergripande scenariot kan betraktas som att utnyttja ett objekt för att skapa ett annat objekt. Alla värden bundna till objektet som används för att initialisera objektet med kopieringskonstruktör tilldelas det nyinitialiserade objektet. Det betyder att om värdet på någon variabel används av det första objektet kan samma variabel användas av objektet som initialiseras av kopieringskonstruktören. Funktionen hos kopieringskonstruktör anses vara mycket viktig och gör utvecklingen mycket bekväm för vissa applikationer. Dess funktioner för att använda objektreferensen i samma klass hjälper till att utveckla den applikation som har kravet som endast kan uppfyllas med kopikonstruktören. Även om den inte utnyttjas så ofta som standard eller parametrerad konstruktör, är det gott om kraft att bidra till att lägga till ny funktionalitet i applikationen.

Exempel

Låt oss förstå konceptet kopieringsbyggare med exemplet. Här kommer vi att arbeta med ett enkelt exempel som visar hur kopieringskonstruktören fungerar och hur den kan komma åt värden som var bundna till objektet med vilket det nya objektet skapas av kopieringskonstruktören. Illustrationen nedan ger dig en uppfattning om hur det är annorlunda att ringa kopieringskonstruktören jämfört med att ringa den normala överbelastade konstruktören.

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

I det här programmet har vi kallat den parametrerade konstruktorn genom att kringgå argumentet genom a1. Det överförda värdet är ett heltal eftersom den parametrerade konstruktorn har definierats för att endast acceptera heltal. När värdet 50 överförs till konstruktören har värdet tilldelats den variabel som heter var. Sedan har objektet a1 skickats till kopieringskonstruktorn genom a2. När objektreferensen har tagits emot av kopieringskonstruktören, binder den värdet som tilldelats det första objektet med det nybildade objektet. Detta är ett enkelt exempel för att förklara konceptet med kopia-konstruktören. Det kan användas i flera andra program för att få olika funktioner i applikationen.

Produktion:

60

Regler och föreskrifter för Copy Constructor i C ++

Copy Constructor anses vara lite annorlunda än den standardiserade eller parametrerade konstruktören. Å ena sidan, där den normala konstruktören arbetar med värdet för den vanliga datatypen, å andra sidan, kopierar konstruktören med det tidigare skapade objektet i samma klass. Det som måste säkerställas när man använder kopieringskonstruktör är att parametrarna som passeras genom kopieringskonstruktören bör användas tillsammans med ett ampersand (&) -tecken eftersom det är ett specialtecken som används för att hålla objektreferensen. Om ampersand inte används vid implementering av kopieringskonstruktören kommer det inte längre att vara en kopieringskonstruktör utan kommer automatiskt att betraktas som en parametrerad konstruktör.

När det gäller att ringa kopieringskonstruktören måste vi se till att värdet som skickas som argument ska bära objektreferensen snarare än något värde som tillhör den vanliga datatypen. Det här är de få saker som måste beaktas mycket skarpt vid implementering av copy-constructor på C ++ programmeringsspråk. Dessutom måste vi se till att vi skiljer den ordentligt från den parametrerade konstruktören varje gång vi använder kopieringskonstruktorn eftersom detta inte kommer att ändra programmets funktionalitet totalt och kommer att leda till fel produktion.

Slutsats

Kopieringskonstruktören betraktas som en speciell typ av konstruktör som fungerar med objektreferensen i samma klass. Det används för att få flera funktioner i applikationen. Om man jämför med standardkonstruktorn används inte kopieringskonstruktören så ofta i de enkla programmen men när det gäller att utveckla komplexa applikationer som måste distribueras i produktionsmiljön används kopikonstruktören där och gör också applikationsutveckling ganska bekväm .

Rekommenderade artiklar

Detta är en guide till Copy Constructors i C ++. Här diskuterar vi introduktionen och hur Copy Constructor fungerar i C ++ tillsammans med regler och regler för Copy Constructor i C ++. Du kan också titta på följande artiklar för att lära dig mer -

  1. Kopiera konstruktör i Java
  2. Kopiera konstruktör i C #
  3. Konstruktör i C ++
  4. Användning av konstruktör i C
  5. Typer av konstruktörer i C # med kodimplementering

Kategori: