Úvod do přetížení funkcí v C ++
Programování v C ++ má úžasné vlastnosti a jednou z nejdůležitějších funkcí je přetížení funkcí. To znamená kód, který má více než jednu funkci se stejným názvem, ale s různými seznamy argumentů. Seznam argumentů znamená posloupnost argumentů a datové typy argumentů. Funkce přetížení se používá k provádění podobných operací. Používá se ke zvýšení čitelnosti kódu. Předefinovala funkci, protože nemá smysl vytvářet dvě různé funkce pro provádění stejné práce znovu a znovu.
Syntax
void add(int a, int b);
void add(float a, float b);
Oba jsou stejné funkce, ale argumenty jsou odlišné. Takže v případě, že chcete provést sčítání na různých typech dat pomocí stejné funkce, pak funkce přetížení funkce může být použita v programování s C ++.
Zde je kód C ++, který demonstruje přetížení funkcí v programování C ++:
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;
)
Různé způsoby přetížení funkce v C ++
Existuje několik způsobů, jak přetížit funkci v programovacím jazyce C ++. Uvidíme, jak to můžeme udělat:
1. Funkce Přetížení
Slouží ke zvýšení čitelnosti kódu při programování. Lze ji definovat jako přetížení 2 nebo více funkcí se stejným názvem, ale různé parametry jsou známé jako přetížení funkcí.
Syntax:
DataType Functionname (parameter list)
(
Function body
)
Příklad č. 1
Zde je kód C ++, který demonstruje přetížení funkcí změnou počtu argumentů v programování C ++:
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;
)
Příklad č. 2
Zde je kód C ++, který demonstruje přetížení funkcí tím, že má v programování C ++ různé typy argumentů:
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. Přetížení obsluhy
Existuje několik vestavěných operátorů v programovacím jazyce C ++. Kodér může tyto operátory použít k přetížení nebo předefinování těchto vestavěných operátorů. Je to polymorfismus kompilace, ve kterém je přetížený operátor použit k provádění úkolů na uživatelsky definovaných typech dat. Téměř mnoho operátorů může být přetíženo v programovacím jazyce C ++.
Syntax:
ReturnType Classname :: operator OperatorSymbol (parameter list)
(
Function body
)
Příklad č. 1
Zde je kód C ++, který demonstruje přetížení operátora v programování C ++:
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;
)
Příklad č. 2
Podívejme se, jak vlastně funguje přetížení funkcí? v programování pomocí příkladů kódování C ++:
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;
)
Vysvětlení kódu:
Ve výše uvedeném kódu jsme vytvořili funkci, která zobrazuje výstup různých datových typů, ale pokud si všimnete, že název funkcí je stejný a argumenty jsou odlišné. Pak jsme inicializovali proměnnou nazvanou x a přiřadili jí hodnotu a nějakou hodnotu přiřazenou také floatové proměnné y. Po přiřazení hodnot proměnným xay jsme nazvali zobrazenou funkci tak, aby se na výstupní obrazovce zobrazila vstupní hodnota.
Jak vidíte názvy funkcí, argument se ve všech třech případech liší. Nejprve jsme nazvali funkci only show integer proměnnou a poté jsme zavolali show function pro zobrazení výstupu pouze pro float proměnnou. Nakonec jsme nazvali funkci show, která má jak celočíselné, tak plovoucí proměnné, aby zobrazily výstup na obrazovce jako výstup.
Takto funguje funkce přetížení funkcí v programovacím jazyce C ++. V závislosti na různých typech dat lze stejnou funkci použít k provedení podobné sady operací.
Příklad č. 3
Zde je kód C ++, který demonstruje přetížení funkcí v programování C ++:
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;
)
Vysvětlení kódu:
Ve výše uvedeném kódu jsme vytvořili třídu X a vytvořili celočíselnou proměnnou x a poté deklarovali dva konstruktory, takže nemusíme vytvářet objekty pro vyvolání funkce, protože konstruktor automaticky inicializuje nově vytvořený objekt třídy ihned po přidělení paměti . Jsou vytvořeny dvě funkce operátor a displej, které ukazují přidání dvou objektů pomocí konceptů přetížení funkcí v našem kódu.
Závěr
V závěru lze funkci přetížení funkcí v C ++ použít několika způsoby ke zvýšení čitelnosti kódu. Pomáhá při ukládání paměti a kompilace při programování v jazyce C ++. Koncept polymorfismu kompilace je také představen koncepty přetížení operátora, kde může být přetížen téměř každý operátor.
Doporučené články
Toto je průvodce funkcí Přetížení v C ++. Zde diskutujeme různé způsoby přetížení funkce v C ++ spolu s různými příklady a implementací kódu. Další informace naleznete také v následujícím článku -
- Jak funguje rekurzivní funkce v C ++?
- Top 3 typy dat v C ++
- Příklady přetížení a přemostění v C ++
- Řetězcové pole v C ++ pole více řetězců