Inleiding tot functieoverbelasting in C ++

C ++ programmeren heeft geweldige functies en een van de belangrijkste functies is functieoverbelasting. Het betekent een code met meer dan één functie met dezelfde naam maar met de verschillende argumentlijsten. De argumentlijst betekent de volgorde van de argumenten en gegevenstypes van argumenten. Functieoverbelasting wordt gebruikt om vergelijkbare bewerkingen uit te voeren. Het wordt gebruikt om de leesbaarheid van de code te verbeteren. De functie opnieuw gedefinieerd omdat het geen zin heeft om twee verschillende functies te maken om steeds hetzelfde werk uit te voeren.

Syntaxis

void add(int a, int b);
void add(float a, float b);

Beide zijn dezelfde functie, maar argumenten zijn verschillend. Dus als u toevoeging op verschillende gegevenstypen met dezelfde functie wilt uitvoeren, kunt u de functie overbelasting gebruiken bij het programmeren met C ++.

Hier is de C ++ -code om functieoverbelasting in C ++ -programmering aan te tonen:

Code:

#include
using namespace std;
void print(int x) (
cout << " Here is the integer " << x << endl;
)
void print(double y) (
cout << " Here is the float " << y << endl;
)
void print(char const *v) (
cout << " Here is the character* " << v << endl;
)
int main() (
print(20);
print(20.30);
print("three");
return 0;
)

Verschillende manieren om de functie te overbelasten in C ++

Er zijn verschillende manieren om een ​​functie in de programmeertaal C ++ te overbelasten. Laten we kijken hoe we dat kunnen doen:

1. Functie overbelast

Gebruik om de leesbaarheid van de code in de programmering te verbeteren. Het kan worden gedefinieerd als overbelasting van 2 of meer functies met dezelfde naam, maar verschillende parameters staan ​​bekend als Functie-overbelasting.

Syntaxis:

DataType Functionname (parameter list)
(
Function body
)

Voorbeeld 1

Hier is de C ++ -code om functie-overbelasting aan te tonen door het aantal argumenten in C ++ -programmering te wijzigen:

Code:

#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
static int addition(int a, int b)(
return a + b;
)
static int addition(int a, int b, int c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)

Voorbeeld 2

Hier is de C ++ -code om functie-overbelasting aan te tonen door verschillende soorten argumenten in C ++ -programmering te hebben:

Code:

#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)
#include
using namespace std;
class Calculate (
public:
int addition(int a, int b)(
return a + b;
)
float addition(float a, float b, float c)
(
return a + b + c;
)
);
int main(void) (
// Declaration class object to call function
Calculate S;
cout< cout< return 0;
)

2. Overbelasting van de operator

Er zijn verschillende ingebouwde operatoren in de programmeertaal C ++. Een coder kan deze operators gebruiken om deze ingebouwde operators te overbelasten of opnieuw te definiëren. Het is een compile-time polymorfisme waarin een overbelaste operator gewend is om taken uit te voeren op door de gebruiker gedefinieerde gegevenstypen. Bijna veel operators kunnen worden overbelast in C ++ programmeertaal.

Syntaxis:

ReturnType Classname :: operator OperatorSymbol (parameter list)
(
Function body
)

Voorbeeld 1

Hier is de C ++ code om Operator overbelasting in C ++ programmering aan te tonen:

Code:

#include
using namespace std;
class Demo
(
private:
int count;
public:
Demo(): count(5)()
void operator ++()
(
count = count+1;
)
void DisplayCount() ( cout<<"The Count is : "< );
int main()
(
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
)
#include
using namespace std;
class Demo
(
private:
int count;
public:
Demo(): count(5)()
void operator ++()
(
count = count+1;
)
void DisplayCount() ( cout<<"The Count is : "< );
int main()
(
Demo d;
// this calls void operator ++()" function
++d;
d.DisplayCount();
return 0;
)

Voorbeeld 2

Laten we eens kijken hoe functie-overbelasting eigenlijk werkt? bij het programmeren via C ++ coderingsvoorbeelden:

Code:

#include
using namespace std;
void show(int);
void show(float);
void show(int, float);
int main() (
int x = 10;
float y = 255.5;
show(x);
show(y);
show(x, y);
return 0;
)
void show(int variable) (
cout << "The Integer number is : " << variable << endl;
)
void show(float variable) (
cout << "The Float number is: " << variable << endl;
)
void show(int variable1, float variable2) (
cout << "The Integer number is: " << variable1;
cout << " And The Float number is:" << variable2;
)

Code Uitleg:

In de bovenstaande code hebben we een functie gemaakt om de uitvoer van verschillende gegevenstypen weer te geven, maar als u merkt dat de functies hetzelfde zijn en de argumenten verschillen. Vervolgens hebben we een variabele met de naam x geïnitialiseerd en hieraan een waarde en een waarde toegewezen die ook aan floatvariabele y is toegewezen. Na het toewijzen van waarden aan x- en y-variabelen hebben we de getoonde functie opgeroepen om de invoerwaarde op het uitvoerscherm weer te geven.

Zoals u de functienamen kunt zien, is het argument in alle drie de gevallen anders. Eerst noemden we de functie alleen show integer-variabele, daarna noemden we show-functie om de uitvoer alleen voor float-variabele weer te geven. Ten slotte hebben we de show-functie genoemd die zowel integer- als zwevende variabelen heeft om uitvoer op het scherm weer te geven als uitvoer.

Dit is hoe de functie overbelasting eigenlijk werkt in de programmeertaal C ++. Afhankelijk van verschillende gegevenstypen kan dezelfde functie worden gebruikt om een ​​vergelijkbare reeks bewerkingen uit te voeren.

Voorbeeld # 3

Hier is de C ++ -code om functie-overbelasting in C ++ -programmering aan te tonen:

Code:

#include
using namespace std;
class X
( int x;
public:
X()()
X(int j)
(
x=j;
)
void operator+(X);
void display();
);
void X :: operator+(X a)
(
int n = x+ax;
cout<<"The addition of two objects is : "< )
int main()
(
X a1(505);
X a2(409);
a1+a2;
return 0;
)
#include
using namespace std;
class X
( int x;
public:
X()()
X(int j)
(
x=j;
)
void operator+(X);
void display();
);
void X :: operator+(X a)
(
int n = x+ax;
cout<<"The addition of two objects is : "< )
int main()
(
X a1(505);
X a2(409);
a1+a2;
return 0;
)

Code Uitleg:

In de bovenstaande code hebben we een klasse X gemaakt en een geheel getal variabele x gemaakt en vervolgens twee constructors gedeclareerd zodat we geen objecten hoeven te maken om de functie aan te roepen als constructor initialiseert automatisch een nieuw gemaakt klasseobject net nadat een geheugen is toegewezen . Twee functies worden aangemaakt operator en display om de toevoeging van twee objecten te tonen met behulp van functieoverbelastingsconcepten in onze code.

Conclusie

Kortom, de functie overbelasting van functies in C ++ kan op meerdere manieren worden gebruikt om de leesbaarheid van de code te verbeteren. Het helpt bij het besparen van geheugenruimte en compilatietijd tijdens het programmeren met de taal C ++. Het compile-time polymorfismeconcept wordt ook geïntroduceerd via operatoroverbelastingsconcepten waarbij bijna elke operator kan worden overbelast.

Aanbevolen artikelen

Dit is een handleiding voor de functie Overbelasting in C ++. Hier bespreken we de verschillende manieren om de functie in C ++ te overbelasten, samen met verschillende voorbeelden en code-implementatie. U kunt ook het volgende artikel bekijken voor meer informatie -

  1. Hoe werkt Recursieve functie in C ++?
  2. Top 3 gegevenstypen in C ++
  3. Voorbeelden van overbelasting en opheffing in C ++
  4. String Array in C ++ een reeks van meerdere strings