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