Úvod do preťaženia funkcií v C ++

Programovanie v C ++ má úžasné vlastnosti a jednou z najdôležitejších funkcií je preťaženie funkcií. Znamená to kód, ktorý má viac ako jednu funkciu s rovnakým názvom, ale s rôznymi zoznamami argumentov. Zoznam argumentov znamená postupnosť argumentov a dátové typy argumentov. Preťaženie funkcií sa používa na vykonávanie podobných operácií. Používa sa na zvýšenie čitateľnosti kódu. Predefinovala funkciu, pretože nemá zmysel vytvárať dve rôzne funkcie na vykonávanie tej istej práce znova a znova.

syntax

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

Obaja majú rovnakú funkciu, ale argumenty sú odlišné. Takže v prípade, že chcete vykonať sčítanie na rôznych typoch dát pomocou rovnakej funkcie, potom je možné funkciu preťaženia funkcie použiť pri programovaní s C ++.

Tu je kód C ++, ktorý demonštruje preťaženie funkcií v programovaní 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ôzne spôsoby preťaženia v C ++

Existuje niekoľko spôsobov, ako preťažiť funkciu v programovacom jazyku C ++. Pozrime sa, ako to môžeme urobiť:

1. Funkcia Preťaženie

Používa sa na zvýšenie čitateľnosti kódu pri programovaní. Môže byť definovaný ako preťaženie 2 alebo viacerých funkcií s rovnakým názvom, ale rôzne parametre sú známe ako preťaženie funkcií.

syntaxe:

DataType Functionname (parameter list)
(
Function body
)

Príklad č. 1

Tu je kód C ++ na demonštráciu preťaženia funkcií zmenou počtu argumentov v programovaní 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;
)

Príklad č. 2

Tu je kód C ++, ktorý demonštruje preťaženie funkcií pomocou rôznych typov argumentov v programovaní C ++:

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. Preťaženie operátora

Existuje niekoľko vstavaných operátorov v programovacom jazyku C ++. Programátor môže tieto operátory použiť na preťaženie alebo predefinovanie týchto vstavaných operátorov. Je to polymorfizmus v čase kompilácie, v ktorom sa preťažený operátor používa na vykonávanie úloh na užívateľsky definovaných typoch údajov. Takmer veľa operátorov môže byť preťažených programovacím jazykom C ++.

syntaxe:

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

Príklad č. 1

Tu je kód C ++, ktorý demonštruje preťaženie operátora v programovaní 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;
)

Príklad č. 2

Pozrime sa, ako v skutočnosti funguje preťaženie funkcií? v programovaní pomocou príkladov kódovania 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;
)

Vysvetlenie kódu:

Vo vyššie uvedenom kóde sme vytvorili funkciu, ktorá zobrazuje výstup rôznych typov údajov, ale ak si všimnete, že funkcie sú rovnaké a argumenty sú odlišné. Potom sme inicializovali premennú nazvanú x a priradili sme jej hodnotu a nejakú hodnotu priradili aj float premennej y. Po priradení hodnôt premenným xay sme nazvali zobrazenú funkciu tak, aby sa na výstupnej obrazovke zobrazila vstupná hodnota.

Ako vidíte názvy funkcií, argument sa vo všetkých troch prípadoch líši. Najprv sme volali funkciu len ukazovať celočíselnú premennú, potom sme zavolali funkciu Zobraziť na zobrazenie výstupu iba pre premennú float. Nakoniec sme nazvali funkciu show, ktorá má ako celočíselné, tak aj floatové premenné, aby zobrazila výstup na obrazovke ako výstup.

Takto vlastne funguje funkcia preťaženia v programovacom jazyku C ++. V závislosti od rôznych typov údajov sa dá rovnaká funkcia použiť na vykonanie podobného súboru operácií.

Príklad č. 3

Tu je kód C ++, ktorý demonštruje preťaženie funkcií v programovaní 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;
)

Vysvetlenie kódu:

Vo vyššie uvedenom kóde sme vytvorili triedu X a vytvorili celočíselnú premennú x a potom sme deklarovali dva konštruktory, aby sme nemuseli vytvárať objekty na volanie funkcie, pretože konštruktor automaticky inicializuje novovytvorený objekt triedy ihneď po pridelení pamäte, Vytvoria sa dve funkcie operátor a displej, ktoré ukazujú pridanie dvoch objektov pomocou konceptov preťaženia funkcií v našom kóde.

záver

Na záver možno funkciu preťaženia funkcií v C ++ použiť na zvýšenie čitateľnosti kódu niekoľkými spôsobmi. Pomáha šetriť miesto v pamäti a kompilačný čas pri programovaní v jazyku C ++. Koncept polymorfizmu v čase kompilácie sa zavádza aj prostredníctvom konceptov preťaženia operátora, pri ktorých môže byť takmer každý operátor preťažený.

Odporúčané články

Toto je sprievodca funkciou Preťaženie v C ++. Tu diskutujeme rôzne spôsoby preťaženia funkcie v C ++ spolu s rôznymi príkladmi a implementáciou kódu. Viac informácií nájdete aj v nasledujúcom článku -

  1. Ako funguje rekurzívna funkcia v C ++?
  2. Top 3 typy údajov v C ++
  3. Príklady preťaženia a prekonania v C ++
  4. String Array v C ++ je rad viacerých reťazcov

Kategórie: