Introduktion til funktionsoverbelastning i C ++

C ++ programmering har fantastiske funktioner, og en af ​​de vigtigste funktioner er overbelastning af funktioner. Det betyder en kode, der har mere end en funktion med det samme navn, men med de forskellige argumentlister. Argumentlisten betyder rækkefølgen af ​​argumenter og datatyper af argumenter. Funktionoverbelastning bruges til at udføre lignende operationer. Det bruges til at forbedre kodens læsbarhed. Omdefineret funktionen, fordi der ikke er nogen mening i at oprette to forskellige funktioner til at udføre det samme arbejde igen og igen.

Syntaks

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

Begge er den samme funktion, men argumenterne er forskellige. Så hvis du ønsker at udføre tilføjelse på forskellige datatyper ved hjælp af den samme funktion, kan funktionen overbelastningsfunktion bruges til programmering med C ++.

Her er C ++ - koden for at demonstrere funktionsoverbelastning i C ++ - programmering:

Kode:

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

Forskellige måder at overbelaste funktion i C ++

Der er flere måder at overbelaste en funktion i C ++ programmeringssprog. Lad os se, hvordan kan vi gøre det:

1. Funktion Overbelastning

Brug dette til at øge kodelæsbarheden i programmeringen. Det kan defineres som overbelastning 2 eller flere funktioner med samme navn, men forskellige parametre kaldes Funktion overbelastning.

Syntaks:

DataType Functionname (parameter list)
(
Function body
)

Eksempel 1

Her er C ++ - koden for at demonstrere overbelastning af funktioner ved at ændre antallet af argumenter i C ++ - programmering:

Kode:

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

Eksempel 2

Her er C ++ - koden for at demonstrere overbelastning af funktioner ved at have forskellige typer argumenter i C ++ - programmering:

Kode:

#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. Overbelastning af operatøren

Der er flere indbyggede operatører i C ++ programmeringssprog. En koder kan bruge disse operatører til at overbelaste eller omdefinere disse indbyggede operatører. Det er en kompileringstid-polymorfisme, hvor en overbelastet operatør bruges til at udføre opgaver på brugerdefinerede datatyper. Næsten mange operatører kan overbelastes i C ++ programmeringssprog.

Syntaks:

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

Eksempel 1

Her er C ++ -koden til at demonstrere operatøroverbelastning i C ++ -programmering:

Kode:

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

Eksempel 2

Lad os se, hvordan funktionsoverbelastning faktisk fungerer? i programmering gennem C ++ -kodningseksempler:

Kode:

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

Kode forklaring:

I ovenstående kode har vi oprettet en funktion til at vise output fra forskellige datatyper, men hvis du bemærker funktioner, er navnet det samme, og argumenterne er forskellige. Derefter initialiserede vi en variabel kaldet x og tildelte den en værdi og en vis værdi tildelt flydende variabel y også. Efter tildeling af værdier til x- og y-variabler kaldte vi den viste funktion til at vise inputværdien på outputskærmen.

Som du kan se funktionsnavne, men argumentet er anderledes i alle tre tilfælde. Først kaldte vi funktionen kun heltalvariabel, hvorefter vi kaldte showfunktion for kun at vise output for floatvariabel. Endelig kaldte vi showfunktionen, der har både heltal- og flydevariabler, der viser output på skærmen som output.

Sådan fungerer faktisk funktionsoverbelastningsfunktion i programmeringssproget C ++. Afhængig af forskellige datatyper kan den samme funktion bruges til at udføre et lignende sæt af operationer.

Eksempel 3

Her er C ++ -koden til at demonstrere Funktion overbelastning i C ++ programmering:

Kode:

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

Kode forklaring:

I ovenstående kode oprettede vi en klasse X og oprettede en heltalvariabel x og erklærede derefter to konstruktører, så vi ikke behøver at oprette objekter til at kalde funktionen, da konstruktør automatisk initialiserer et nyoprettet klasseobjekt lige efter en hukommelse er tildelt . To funktioner oprettes operatør og display for at vise tilføjelsen af ​​to objekter ved hjælp af funktionsoverbelastningskoncepter i vores kode.

Konklusion

Afslutningsvis kan funktionsoverbelastningsfunktion i C ++ bruges på flere måder for at øge kodelæsbarheden. Det hjælper med at spare hukommelsesplads såvel som kompileringstid under programmering med C ++ sproget. Kompileringstids-polymorfisme-koncept introduceres også gennem operatørens overbelastningskoncepter, hvor næsten enhver operatør kan overbelastes.

Anbefalede artikler

Dette er en guide til funktionsoverbelastning i C ++. Her diskuterer vi de forskellige måder at overbelaste funktion i C ++ sammen med forskellige eksempler og kodeimplementering. Du kan også se på den følgende artikel for at lære mere -

  1. Hvordan rekursiv funktion fungerer i C ++?
  2. Top 3 datatyper i C ++
  3. Eksempler på overbelastning og overstyring i C ++
  4. String Array i C ++ en matrix med flere strenge

Kategori: