C++

C++ Functie Overbelasting

C++ Functie Overbelasting

C++ is een flexibele programmeertaal voor algemene doeleinden. Deze programmeertaal is oorspronkelijk gemaakt door Bjarne Stroustrup, een Deense computerwetenschapper, in 1985. C++ ondersteunt polymorfisme, overerving en meer. Dit artikel behandelt overbelasting van functies om polymorfisme tijdens compileren te bereiken in de programmeertaal C++.

Wat is een functie??

Een functie is niets meer dan een specifiek stuk code dat een specifieke taak uitvoert op basis van verstrekte invoer, en het de gevraagde resultaten aan de gebruiker teruggeeft in de vorm van een uitvoer. Functies worden gebruikt om repetitieve code in grote codebases te elimineren.

Nadat u een functie hebt gedefinieerd, kunt u deze op een later tijdstip opnieuw gebruiken, in hetzelfde programma of in een ander programma.

Functiesyntaxis

Een functie in C++ heeft de volgende syntax:

returnType functionName(parameter_list)



return_value teruggeven;

Het returnType, parameter_list en return statement zijn optioneel. Een functie in C++ kan maximaal één waarde retourneren. Als een functie geen waarde retourneert, moet het returnType worden gedefinieerd als void.

Wat is functie-overbelasting??

In C++ kunnen meerdere functiedefinities dezelfde functienaam hebben, maar met verschillende parameters. Dit wordt functie-overbelasting genoemd. Met behulp van de functie voor overbelasting van de functie kan compileertijd-polymorfisme worden bereikt in C++.

Functies kunnen op de volgende manieren worden overbelast:

  1. Het aantal parameters kan verschillen
  2. Het gegevenstype van de parameters kan verschillen
  3. De volgorde van de parameters kan verschillen

De geretourneerde waarde wordt echter niet in aanmerking genomen voor overbelasting van de functie. 

De volgende functies zijn overbelast:

  1. int toevoeging (int a, int b)
  2. float toevoeging (float f, gloat g)
  3. float-toevoeging (float f, int i)
  4. float-toevoeging (int i, float f)
  5. int toevoeging (int a, int b, int c)
  6. float toevoeging (float f, float g, float h)

Zoals u kunt zien, kunnen er met behulp van de functie voor overbelasting van functies in C++ meerdere definities/functionaliteiten zijn met dezelfde functienaam en in hetzelfde bereik.

Zonder de functie voor overbelasting van de functie, zou u voor elke variatie een aparte functie moeten schrijven [bijvoorbeeld toevoeging_1(), toevoeging_2() enz.]. U moet bijvoorbeeld additie_1() schrijven om twee gehele getallen toe te voegen, add_2() om twee floats toe te voegen, enzovoort. Zoals u hierboven kunt zien, kan de functie voor overbelasting van de functie worden gebruikt om meerdere varianten van de functie "addition()" te definiëren, terwijl dezelfde functienaam behouden blijft.

De volgende functies worden niet als overbelast beschouwd omdat het enige verschil tussen deze twee het retourtype is (het retourtype wordt niet beschouwd voor functieoverbelasting in C++):

  1. int toevoeging (int a, int b)
  2. float-toevoeging (int a, int b)

Voorbeelden

Nu u het concept van functie-overbelasting begrijpt, zullen we een aantal werkende voorbeeldprogramma's doornemen om dit concept beter te begrijpen. We zullen de volgende voorbeelden behandelen:

  1. Voorbeeld 1: Eenvoudige functie
  2. Voorbeeld 2: Eenvoudige toevoegingsfunctie
  3. Voorbeeld 3: Functie Overbelasting (1)
  4. Voorbeeld 4: Functie Overbelasting (2)
  5. Voorbeeld 5: Functie Overbelasting (3)

De eerste twee voorbeelden leggen uit hoe normale functies werken in C++, terwijl de laatste drie voorbeelden de functie overbelasting in C demonstrate demonstreren++.

Voorbeeld 1: Eenvoudige functie

In dit voorbeeld laten we zien hoe een eenvoudige functie kan worden gedefinieerd en aangeroepen in C++. We zullen een klasse definiëren met de naam "Display" en een openbare functie met de naam "display().” Vanuit de functie “main()” zullen we de functie “display()” aanroepen met behulp van het klasseobject “Display” (d).

#include
namespace std; gebruiken;
klasse weergave

openbaar:
ongeldige weergave()

cout << "Hello World!" << endl;

;
int hoofd()

Weergave d;
d.Scherm();
retourneer 0;

Voorbeeld 2: Eenvoudige toevoegingsfunctie

In dit voorbeeld laten we zien hoe u een eenvoudige functie "addition()" definieert in C++. We zullen een klasse definiëren met de naam "DemoAdd" en een openbare functie met de naam "addition().” Vanuit de functie “main()” zullen we de functie “addition()” aanroepen met behulp van het klasseobject “DemoAdd” (d).

In dit voorbeeld accepteert de huidige implementatie van de functie "addition()" slechts twee integer-parameters. Dat betekent dat de huidige functie "addition()" in staat is om slechts twee gehele getallen op te tellen.

Om drie gehele getallen toe te voegen in plaats van twee, kan een functie met een andere naam, zoals "addition_1()", worden gedefinieerd. In C++ kan een functie overbelast zijn, wat betekent dat een andere definitie van de functie "addition()" kan worden gedefinieerd om drie gehele getallen toe te voegen en dezelfde naam te behouden, i.e., “toevoeging().In het volgende voorbeeld zullen we kijken hoe we de functie "addition()" kunnen overbelasten.

#include
namespace std; gebruiken;
klasse DemoToevoegen

openbaar:
int toevoeging (int a, int b)

int resultaat;
resultaat = a + b;
resultaat teruggeven;

;
int hoofd()

DemoVoeg d toe;
int i1 = 10, i2 = 20, res;
res = d.toevoeging (i1, i2);
cout << "Result = " << res << endl;
retourneer 0;

Voorbeeld 3: Functie Overbelasting (1)

In het vorige voorbeeld hebben we de functie "addition()" gedefinieerd om twee gehele getallen toe te voegen en het berekende resultaat te retourneren. In dit voorbeeld zullen we de functie "addition()" overbelasten om drie gehele getallen toe te voegen. We kunnen dus de functie "addition()" aanroepen met twee integer-argumenten, evenals drie integer-argumenten.

Zonder de functie voor overbelasting van de functie, zouden we een andere functie met een andere naam moeten schrijven.

#include
namespace std; gebruiken;
klasse DemoToevoegen

openbaar:
// Eerste functiedefinitie van additie()
int toevoeging (int a, int b)

int resultaat;
resultaat = a + b;
resultaat teruggeven;

// Overbelaste versie van de functie additie()
int toevoeging (int a, int b, int c)

int resultaat;
resultaat = a + b + c;
resultaat teruggeven;

;
int hoofd()

DemoVoeg d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.toevoeging (i1, i2); // toevoeging() met 2 parameters
res2 = d.toevoeging (i1, i2, i3); // toevoeging() met 3 parameters
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retourneer 0;

Voorbeeld 4: Functie Overbelasting (2)

In eerdere secties van dit artikel heb je geleerd dat functieoverbelasting kan worden uitgevoerd op basis van verschillen in parametertype. Hier hebben we de functie "addition()" overbelast op basis van het gegevenstype van de parameter. In de eerste versie van de optelfunctie zullen we twee variabelen van het type integer toevoegen; en in de tweede versie zullen we twee variabelen van het type float toevoegen.

#include
namespace std; gebruiken;
klasse DemoToevoegen

openbaar:
// Eerste definitie van toevoeging()
int toevoeging (int a, int b)

int resultaat;
resultaat = a + b;
resultaat teruggeven;

// Overbelaste functiedefinitie
float-toevoeging (float f, float g)

float resultaat;
resultaat = f + g;
resultaat teruggeven;

;
int hoofd()

DemoVoeg d;
int i1 = 10, i2 = 20, res1;
vlotter f1 = 10.5, f2 = 20.7, res2;
res1 = d.toevoeging (i1, i2); // toevoeging (int a, int b) wordt aangeroepen
res2 = d.toevoeging (f1, f2); // toevoeging (float f, flat g) wordt genoemd
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retourneer 0;

Voorbeeld 5: Functie Overbelasting (3)

In dit voorbeeld is de functie "addition()" overbelast op basis van verschillen in de volgorde van de parameterlijst. Dit is een andere manier om een ​​functie in C . te overbelasten++.

#include
namespace std; gebruiken;
klasse DemoToevoegen

openbaar:
// Eerste functiedefinitie van de functie additie())
float-toevoeging (int a, float b)

float resultaat;
resultaat = (zwevend)a + b;
resultaat teruggeven;

// Overbelaste functiedefinitie van de functie additie()
float-toevoeging (float a, int b)

float resultaat;
resultaat = a + (zwevend)b;
resultaat teruggeven;

;
int hoofd()

DemoVoeg d toe;
int i1 = 10;
vlotter f1 = 10.5, res1, res2;
res1 = d.toevoeging (i1, f1); // toevoeging (int a, float b) wordt aangeroepen
res2 = d.toevoeging (f1, i1); // toevoeging (float a, int b) wordt aangeroepen
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
retourneer 0;

Conclusie

C++ is een universele en flexibele programmeertaal die veel wordt gebruikt in verschillende domeinen. Deze programmeertaal ondersteunt zowel compile-time als runtime polymorfisme. In dit artikel hebt u geleerd hoe u polymorfisme tijdens compileren in C++ kunt bereiken met behulp van de functie voor overbelasting van de functie. Dit is een zeer handige functie in C++ die programmeurs helpt om leesbare code te schrijven. Het kan ook handig zijn voor het schrijven van herbruikbare code.

Hoe de GameConqueror Cheat Engine in Linux te gebruiken
Het artikel bevat een handleiding over het gebruik van de GameConqueror cheat-engine in Linux. Veel gebruikers die games op Windows spelen, gebruiken ...
Beste gameconsole-emulators voor Linux
Dit artikel bevat een lijst van populaire emulatiesoftware voor gameconsoles die beschikbaar is voor Linux. Emulatie is een softwarecompatibiliteitsla...
Beste Linux-distributies voor gaming in 2021
Het Linux-besturingssysteem heeft een lange weg afgelegd van zijn oorspronkelijke, eenvoudige, servergebaseerde uiterlijk. Dit besturingssysteem is de...