Bevezetés a C ++ funkció túlterheléséhez

A C ++ programozás csodálatos funkciókkal rendelkezik, és az egyik legfontosabb funkció a funkció túlterhelése. Ez egy olyan kódot jelent, amelynek egynél több funkciója van, azonos névvel, de a különféle argumentumlistákkal. Az argumentumlista az argumentumok sorrendjét és az argumentumok adattípusait tartalmazza. A funkció túlterhelését hasonló műveletek végrehajtására használják. A kód olvashatóságának javítására szolgál. A funkció újradefiniálása, mivel nincs értelme két különböző funkció létrehozására ugyanazon munka újra és újra végrehajtására.

Szintaxis

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

Mindkettő ugyanaz a funkció, de az érvek eltérnek. Tehát abban az esetben, ha különféle adattípusokon szeretne hozzáadást végezni ugyanazzal a funkcióval, akkor a funkció túlterhelési funkció használható a C ++ programozáshoz.

Itt van a C ++ kód, amely a C ++ programozás során a funkció túlterhelésének bemutatására szolgál:

Kód:

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

A C ++ funkció túlterhelésének különféle módjai

A C ++ programozási nyelv funkcióinak túlterhelésére többféle mód van. Lássuk, hogyan lehet ezt megtenni:

1. Funkció túlterhelése

Használja a kódolvashatóság növeléséhez a programozásban. Ez úgy definiálható, mint 2 vagy több azonos nevű funkció túlterhelése, de a különféle paramétereket Funkció túlterhelésnek nevezzük.

Szintaxis:

DataType Functionname (parameter list)
(
Function body
)

1. példa

Itt van a C ++ kód, amely a C ++ programozás során az argumentumok számának megváltoztatásával demonstrálja a funkció túlterhelését:

Kód:

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

2. példa

Itt van a C ++ kód, amely a funkció túlterhelésének bemutatására szolgál különféle típusú argumentumokkal a C ++ programozásban:

Kód:

#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. Üzemeltető túlterhelése

Számos beépített operátor létezik a C ++ programozási nyelven. A kódoló ezeket az operátorokat felhasználhatja a beépített operátorok túlterhelésére vagy újradefiniálására. Ez egy fordítási idejű polimorfizmus, amelyben a túlterhelt operátor megszokja a felhasználó által meghatározott adattípusokon végzett feladatokat. Szinte sok operátor túlterhelhető a C ++ programozási nyelven.

Szintaxis:

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

1. példa

Itt van a C ++ kód, amely bemutatja az operátor túlterhelését a C ++ programozás során:

Kód:

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

2. példa

Lássuk, hogyan működik a funkciók túlterhelése? a programozásban a C ++ kódolási példákon keresztül:

Kód:

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

Kód magyarázat:

A fenti kódban olyan funkciót hoztunk létre, amely megmutatja a különféle adattípusok kimenetét, de ha észreveszi, hogy a funkciók neve azonos, és az érvek eltérnek. Ezután inicializáltuk az x nevű változót, és értéket, valamint valamilyen értéket hozzárendeltünk az y úszó változóhoz is. Az x és y változókhoz való hozzárendelés után meghívtuk a bemutatott funkciót, hogy megjelenítsük a bemeneti értéket a kimeneti képernyőn.

Amint láthatja a függvényneveket, az argumentum mindhárom esetben eltérő. Először a funkciót csak egész számváltozónak neveztük, utána pedig a függvényt neveztük, hogy csak az úszó változó kimenete jelenjen meg. Végül meghívtuk a show funkciót, amely egész szám és úszó változóval egyaránt rendelkezik, hogy kimenetet jelenítsen meg a kijelzőn.

Így működik a funkciók túlterhelése a C ++ programozási nyelven. A különböző adattípusoktól függően ugyanaz a funkció használható hasonló műveletek végrehajtására.

3. példa

A C ++ kód bemutatja a Funkció túlterhelését a C ++ programozásban:

Kód:

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

Kód magyarázat:

A fenti kódban létrehoztunk egy X osztályt, és létrehoztuk egy x egész változót, majd deklarálunk két konstruktort, hogy ne kelljen objektumokat létrehozni a függvény meghívására, mivel a konstruktor automatikusan inicializálja az újonnan létrehozott osztályobjektumot, miután a memória hozzárendelésre került. . Két funkció jön létre operátorként és kijelzőn, hogy megmutathassuk két objektum hozzáadását a funkciónk túlterhelési koncepcióinak felhasználásával a kódunkban.

Következtetés

Összegezve: a C ++ funkció túlterhelési funkciója többféle módon is felhasználható a kód olvashatóságának növelésére. Segít a memória és a fordítási idő megtakarításában, miközben a C ++ nyelvet programozza. A fordítási idő polimorfizmus fogalmát az operátor túlterhelési koncepciókon keresztül is bevezetik, ahol szinte minden operátor túlterhelhető.

Ajánlott cikkek

Ez egy útmutató a C ++ funkció túlterhelésének. Itt tárgyaljuk a C ++ funkció túlterhelésének különféle módjait, valamint a példákat és a kód megvalósítását. A következő cikkben további információkat is megnézhet -

  1. Hogyan működik a rekurzív funkció a C ++-ban?
  2. A 3 legfontosabb adattípus a C ++ kategóriában
  3. Példák a C ++ túlterhelésére és felülbírálására
  4. Karakterlánc tömb a C ++-ban több karakterlánc tömbje

Kategória: