In dit artikel gaan we met voorbeelden in op al dit soort constructeurs.
voorbeeld 1
Dit is een illustratie van een standaardconstructor. Zoals we weten, worden de constructors standaard automatisch gemaakt wanneer we een object van een klasse maken. Dit wordt impliciete creatie genoemd. Constructors hebben dezelfde naam als de naam van de klasse. Overweeg een bestand met de c++-code van de constructor, aangezien we weten dat de klasse twee opties heeft, privé en openbaar. Het privégedeelte bevat de gegevensvariabelen, terwijl het openbare gedeelte voor de functies is die door elk object worden opgehaald. De constructor wordt dus ook gedefinieerd in het publieke deel.
Geheel getal()
{
x=vijftig;
en=twintig;
};
In deze constructor worden waarden toegekend aan de variabelen. Als we de waarden als uitvoer willen ophalen, moeten we ze in het hoofdprogramma afdrukken.
Na het definiëren van de constructor wordt de klasse gesloten. Bij het openen van het hoofdprogramma zullen we de waarden afdrukken met behulp van een object. Het object heeft altijd toegang tot constructors omdat dit de delen van de klasse zijn. Het maken van objecten is zo eenvoudig. Het wordt gedaan door het te introduceren met de naam van de klas. Dat is in dit voorbeeld een geheel getal. De waarde wordt opgehaald via de puntmethode. d.w.z. a.x.
We kunnen de uitvoer van de broncode van de terminal in Ubuntu zien. De aanpak die wordt gebruikt voor het verkrijgen van de output is vrij eenvoudig. Eerst wordt de code gecompileerd en vervolgens uitgevoerd. We gebruiken de G++-compiler voor het compilatieproces. Net als in het geval van C gebruiken we GCC.
$ G++ -of filec-filec.C
./filec
-O wordt gebruikt om de uitvoer in het bestand op te slaan.
Voorbeeld 2
In deze illustratie gaan we de geparametriseerde constructors uitleggen. In tegenstelling tot het vorige voorbeeld kunnen we de argumenten ook doorgeven aan de constructeurs vanuit het hoofdprogramma. Wanneer het object wordt gegenereerd, worden deze waarden automatisch doorgegeven aan de variabelen die aanwezig zijn in de constructor om de waarde te ontvangen. Enkele van de toepassingen van geparametriseerde constructors zijn.
- Het wordt gebruikt om verschillende variabelen met verschillende waarden binnen de constructors te initialiseren wanneer het wordt geïnitialiseerd.
- Het wordt gebruikt bij overbelasting van constructeurs. Het wordt later in het artikel gedefinieerd.
Laten we nu eens kijken naar de illustratie die we hebben beschreven om dit concept uit te werken. De klasse heeft de naam integer, dus de naam van de constructor zal zeker ook hetzelfde zijn. In de parameters van de constructor zijn er twee waarden van het type integer. Deze worden geïnitialiseerd om de waarden te accepteren die vanuit het hoofdprogramma als functieaanroep worden verzonden.
Geheel getal( intx,inten){
TOT=x;
B=en;
};
In het vorige voorbeeld kregen de variabelen binnen de constructor de waarden. Terwijl in deze constructor variabelen worden toegewezen waarbij de variabelen de waarde hebben.
Als we weergave willen hebben, moeten we een functie definiëren die de waarde retourneert, omdat het niet mogelijk is om die geïnitialiseerde variabele rechtstreeks vanuit de constructor te benaderen.
intgetX(){
opbrengsttot;
};
Nu zullen we het belangrijkste deel van het programma zien. Hier, wanneer het object is gemaakt, kunt u de waarden in de parametersectie zien.
geheel getal v(70,55); {impliciet}geheel getal v=geheel getal(10,vijftien); {expliciet}
En om het resultaat weer te geven, zullen we de functies aanroepen die in de klasse zijn gemaakt met behulp van het object. d.w.z. v.getx().
De methode voor het ophalen van records is dezelfde als eerder geïntroduceerd.
Voorbeeld 3
Dit voorbeeld gaat over het kopiëren van een constructor van een klasse. Een gekopieerde constructor wordt gebruikt om het object te initialiseren met een ander object van een vergelijkbare klasse waartoe het behoort. Deze constructor kopieert de gegevens die aanwezig zijn in het ene object naar het andere. De parameters van deze constructor bevatten het adres van een object van de klasse. Beschouw de gegeven voorbeelden, waarin we twee variabelen van dezelfde gegevenstypen hebben geïntroduceerd, zodat deze door elke functie binnen de klasse kunnen worden benaderd. De constructor ontvangt de waarden via de variabele. Tegelijkertijd ontvangt de gekopieerde constructor alleen het object. En met behulp van dit object worden de waarden opgehaald.
muur(muur&obj){
Lengte=obj.lengte;
Hoogte=obj.hoogte;
}
We moeten oppervlakte berekenen, dus de functie voor deze berekening wordt hier gedefinieerd. Hierdoor wordt de waarde teruggestuurd naar de hoofdfunctie wanneer deze wordt aangeroepen. Nu zullen we het hoofdprogramma van de code bekijken
De functieaanroep van de gekopieerde constructor ziet er als volgt uit.
muur muur2=muur1;Het object roept de gekopieerde constructor aan en de gegevens via het eerste object worden erdoor gekopieerd. Verder zullen we de functie aanroepen om de oppervlakte door beide objecten te berekenen.
Uit de uitvoer kunt u zien dat het resultaat van beide constructors hetzelfde is. Het betekent dat alle gegevens met succes door het object zijn gekopieerd.
Voorbeeld 4
Dit is een illustratie van overbelasting van de aannemer. Het gebeurt wanneer we meer dan een enkele functie binnen de klasse moeten gebruiken. Constructoroverbelasting volgt de instructies van geparametriseerde constructeurs. Alle constructors in de klasse hebben een gelijkaardige naam als de klasse. Maar aan elk van de constructeurs zijn verschillende parameters toegewezen. Elke constructor wordt aangeroepen volgens het argument wanneer we het object maken.
Beschouw het gegeven voorbeeld, waarin we drie constructors hebben gebruikt. Een daarvan is zonder enig argument. De tweede is met een enkel argument, terwijl de derde is met twee argumenten. Deze illustratie is vergelijkbaar met de vorige. Zoals we het gebied berekenen in de afzonderlijke functie die in de klasse wordt beschreven.
// Constructor met twee argumentenvorm(intx,inten)
{
tot=x;
B=en;
};
Nu we naar het hoofdprogramma gaan, kunnen we zien dat wanneer we het klasseobject starten, de constructor zonder argument standaard wordt aangeroepen. Nu moeten we andere constructors aanroepen met verschillende objecten met verschillende argumenten.
Vorm s;Vorm s2(8);
Vorm s3(4,2);
De functie waarmee we de waarde kunnen weergeven, wordt aangeroepen via hetzelfde gecreëerde object.
Om de uitvoer te bekijken, gebruiken we dezelfde opdrachtterminalmethode door de code in het bestand te compileren en uit te voeren.
Uit de uitvoer kunnen we zien dat het antwoord voor elke constructor hetzelfde is.
Conclusie
In deze tutorial hebben we de basis van constructors en hun functionaliteiten gezien, inclusief hoe ze te overbelasten. Constructors worden gebruikt om de variabelen met de waarden te initialiseren.