C ++ klass konstruktörer

C Class Constructors



Konstruktörer är som funktioner. Dessa används för att initiera klassens värden och objekt. Dessa konstruktörer initieras när objektet för en klass skapas. Constructor returnerar inget värde direkt. För att få konstruktörens värde måste vi beskriva en separat funktion eftersom konstruktören inte har någon returtyp. Constructor skiljer sig från den enkla funktionen på olika sätt. En konstruktör skapas när objektet genereras. Det definieras i det offentliga segmentet i klassen.

I den här artikeln kommer vi att överväga alla dessa typer av konstruktörer med exempel.







Exempel 1

Detta är en illustration av en standardkonstruktör. Som vi vet är konstruktörerna som standard skapade automatiskt när vi skapar ett objekt i en klass. Detta kallas implicit skapande. Konstruktörer har samma namn som är klassens namn. Tänk på en fil med konstruktörens c ++ - kod eftersom vi vet att klassen har två alternativ, privat och offentlig. Den privata delen innehåller datavariablerna, medan den offentliga delen är för de funktioner som hämtas av alla objekt. Så konstruktören definieras också i den offentliga delen.



Heltal()

{

x=femtio;

och=tjugo;

};

I denna konstruktör tilldelas variablerna värden. Om vi ​​vill hämta värdena som en utmatning måste vi skriva ut dem i huvudprogrammet.







Efter att ha definierat konstruktören stängs klassen. När vi går in i huvudprogrammet tar vi ut värdena med ett objekt. Objektet kommer alltid åt konstruktörer eftersom dessa är delarna av klassen. Objektskapande är så enkelt. Det görs genom att introducera det med klassens namn. Det är ett heltal i det här exemplet. Värdet hämtas genom punktmetoden. dvs. a.x.

Vi kan se utmatningen av källkoden från terminalen i Ubuntu. Metoden som används för att få ut produktionen är ganska enkel. Först kompileras koden och sedan körs den. Vi använder G ++ - kompilatorn för kompileringsprocessen. Precis som i fallet C använder vi GCC.



$ G++ -eller filec filec.c

./filec

-O används för att spara utdata i filen.

Exempel 2

I denna illustration kommer vi att förklara de parametrerade konstruktörerna. Till skillnad från föregående exempel kan vi också skicka argumenten till konstruktörerna från huvudprogrammet. När objektet genereras skickas dessa värden automatiskt till de variabler som finns i konstruktorn för att ta emot värdet. Några av användningarna av parametrerade konstruktörer är.

  • Den används för att initiera olika variabler med olika värden inuti konstruktörerna när den initieras.
  • Det används vid konstruktöröverbelastning. Det definieras senare i artikeln.

Låt oss nu överväga den illustration som vi har beskrivit för att utveckla detta koncept. Klassen har namnet heltal, så definitivt kommer konstruktörens namn också att vara detsamma. I konstruktörens parametrar finns det två heltalstypsvärden. Dessa initieras för att acceptera de värden som skickas från huvudprogrammet som ett funktionsanrop.

Heltal( intx,intoch)

{

TILL=x;

B=och;

};

I föregående exempel fick variablerna inuti konstruktorn värdena. Medan i denna konstruktör tilldelas variabler med variablerna som har värdet.

Om vi ​​vill visa, måste vi definiera en funktion som returnerar värdet eftersom det inte är möjligt att komma åt den initialiserade variabeln direkt från konstruktorn.

intgetX()

{

lämna tillbakatill;

};

Nu kommer vi att se huvuddelen av programmet. Här när objektet skapas kan du se värdena i parameteravsnittet.

Heltal v(70,55); {implicit}

heltal v=heltal(10,femton); {explicit}

Och för att visa resultatet kommer vi att kalla funktionerna som skapats inuti klassen med hjälp av objektet. dvs v.getx ().

Metoden för hämtning av poster är densamma som introducerades tidigare.

Exempel 3

Detta exempel handlar om kopiering av en konstruktör av en klass. En kopierad konstruktör används för att initiera objektet med ett annat objekt av en liknande klass som det tillhör. Denna konstruktör kopierar data som finns i ett objekt till det andra. Parametrarna för denna konstruktör innehåller adressen till ett objekt i klassen. Tänk på de givna exemplen, där vi har introducerat två variabler av samma datatyper så att dessa kan nås av alla funktioner i klassen. Konstruktören tar emot värdena genom variabeln. Samtidigt tar den kopierade konstruktören bara emot objektet. Och med hjälp av detta objekt kommer värdena att hämtas.

Vägg(vägg&obj)

{

Längd=obj.längd;

Höjd=obj.höjd;

}

Vi måste beräkna area, så funktionen för denna beräkning definieras här. Detta kommer att returnera värdet till huvudfunktionen när det anropas. Nu kommer vi att observera kodens huvudprogram

Funktionsanropet för den kopierade konstruktören kommer att vara så här.

Väggvägg 2=vägg1;

Objektet kallar den kopierade konstruktören och data genom det första objektet kopieras genom det. Dessutom kommer vi att kalla funktionen för att beräkna area genom båda objekten.

Från utgången kan du se att resultatet från båda konstruktörerna är detsamma. Det betyder att hela data kopierades av objektet framgångsrikt.

Exempel 4

Detta är en illustration av konstruktörens överbelastning. Det händer när vi måste använda mer än en enda funktion i klassen. Konstruktöröverbelastning följer instruktionerna från parametriserade konstruktörer. Alla konstruktörer i klassen har ett liknande namn som klassen. Men var och en av konstruktörerna tilldelas olika parametrar. Varje konstruktör kallas enligt argumentet när vi skapar objektet.

Tänk på det givna exemplet där vi har använt tre konstruktörer. En är utan argument. Det andra är med ett enda argument, medan det tredje är med två argument. Denna illustration liknar den föregående. När vi beräknar arean i den separata funktionen som beskrivs inuti klassen.

// Konstruktör med två argument

form(intx,intoch)

{

till=x;

b=och;

};

Nu när vi går mot huvudprogrammet kan vi se att när vi initierar klassobjektet kallas konstruktören utan argument som standard. Nu måste vi kalla andra konstruktörer med olika objekt som har olika argument.

Form s;

Form s2(8);

Form s3(4,2);

Funktionen genom vilken vi kan visa värdet kallas genom samma objekt som skapats.

För att se utdata använder vi samma kommandoterminalmetod genom att kompilera och köra koden som finns i filen.

Från utgången kan vi se att svaret är detsamma för varje konstruktör.

Slutsats

I denna handledning har vi sett grunderna för konstruktörer och deras funktioner, inklusive hur man överbelastar dem. Konstruktörer används för att initiera variablerna med värdena.