Introducere la supraîncărcarea funcțiilor în C ++

Programarea C ++ are caracteristici uimitoare, iar una dintre cele mai importante caracteristici este supraîncărcarea funcțiilor. Înseamnă un cod care are mai multe funcții cu același nume, dar cu diferite liste de argumente. Lista de argumente înseamnă secvența argumentelor și tipurile de date de argumente. Supraîncărcarea funcției este utilizată pentru a efectua operațiuni similare. Este utilizat pentru a îmbunătăți lizibilitatea codului. Redefinit funcția, deoarece nu are rost să creeze două funcții diferite pentru a efectua aceeași lucrare din nou și din nou.

Sintaxă

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

Ambele sunt aceeași funcție, dar argumentele sunt diferite. Deci, în cazul în care doriți să efectuați adăugarea pe diferite tipuri de date utilizând aceeași funcție, atunci funcția de suprasarcină a funcției poate fi utilizată în programarea cu C ++.

Iată codul C ++ pentru a demonstra supraîncărcarea funcțiilor în programarea C ++:

Cod:

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

Moduri diferite de supraîncărcare a funcției în C ++

Există mai multe moduri de a supraîncărca o funcție în limbajul de programare C ++. Să vedem cum putem face asta:

1. Supraîncărcarea funcției

Utilizați pentru a crește lizibilitatea codurilor în programare. Poate fi definit ca supraîncărcarea a 2 sau mai multe funcții cu același nume, dar parametrii diferiți sunt cunoscuți subîncărcarea funcției.

Sintaxă:

DataType Functionname (parameter list)
(
Function body
)

Exemplul # 1

Iată codul C ++ pentru a demonstra supraîncărcarea funcției prin schimbarea numărului de argumente din programarea C ++:

Cod:

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

Exemplul # 2

Iată codul C ++ pentru a demonstra supraîncărcarea funcțiilor, având diferite tipuri de argumente în programarea C ++:

Cod:

#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. Suprasarcina operatorului

Există mai mulți operatori integrați în limbajul de programare C ++. Un coder poate utiliza acești operatori pentru a supraîncărca sau redefini acești operatori încorporați. Este un polimorfism cu compilare în timp în care un operator supraîncărcat este obișnuit să efectueze sarcini pe tipuri de date definite de utilizator. Aproape mulți operatori pot fi supraîncărcați în limbajul de programare C ++.

Sintaxă:

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

Exemplul # 1

Iată codul C ++ pentru a demonstra supraîncărcarea operatorului în programarea C ++:

Cod:

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

Exemplul # 2

Să vedem cum funcționează de fapt supraîncărcarea? în programarea prin exemple de codificare C ++:

Cod:

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

Explicare Cod:

În codul de mai sus, am creat o funcție pentru a afișa ieșirea diferitelor tipuri de date, dar dacă observați că funcțiile sunt identice și argumentele sunt diferite. Apoi am inițializat o variabilă numită x și i-am atribuit o valoare și o anumită valoare atribuită și variabilei float. După alocarea valorilor variabilelor x și y am apelat la funcția arătată pentru a afișa valoarea de intrare pe ecranul de ieșire.

După cum puteți vedea numele funcțiilor, dar argumentul este diferit în toate cele trei cazuri. În primul rând, am numit funcția arată numai variabilă întreagă după aceea am apelat la funcția show pentru a afișa ieșirea numai pentru variabila float. În cele din urmă, am numit funcția show care are atât variabile întregi, cât și variabile float pentru a afișa ieșirea pe ecranul afișajului ca ieșire.

Așa funcționează efectiv funcția de supraîncărcare a limbajului de programare C ++. În funcție de diferite tipuri de date, aceeași funcție poate fi utilizată pentru a efectua un set similar de operații.

Exemplul # 3

Iată codul C ++ pentru a demonstra supraîncărcarea funcției în programarea C ++:

Cod:

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

Explicare Cod:

În codul de mai sus, am creat o clasă X și am creat o variabilă întreagă x și apoi am declarat doi constructori, astfel încât nu trebuie să creăm obiecte pentru apelarea funcției ca constructor inițializează automat un obiect de clasă nou creat imediat după alocarea unei memorii. . Două funcții sunt create și afișate pentru a afișa adăugarea a două obiecte folosind concepte de supraîncărcare a funcțiilor din codul nostru.

Concluzie

În concluzie, funcția de supraîncărcare a funcției în C ++ poate fi utilizată în mai multe moduri pentru a crește lizibilitatea codului. Acesta ajută la economisirea spațiului de memorie, precum și timp de compilare în timp ce programează cu limbajul C ++. Conceptul de polimorfism în timp de compilare este introdus și prin concepte de supraîncărcare a operatorului în care aproape fiecare operator poate fi supraîncărcat.

Articole recomandate

Acesta este un ghid pentru supraîncărcarea funcțiilor în C ++. Aici discutăm diferitele moduri de supraîncărcare a funcției în C ++ împreună cu diferite exemple și implementarea codului. De asemenea, puteți consulta articolul următor pentru a afla mai multe -

  1. Cum funcționează funcția recursivă în C ++?
  2. Top 3 tipuri de date în C ++
  3. Exemple de supraîncărcare și supraîncărcare în C ++
  4. String Array în C ++ o serie de șiruri multiple