Sissejuhatus funktsiooni ülekoormamisse C ++

C ++ programmeerimisel on hämmastavad funktsioonid ja üks olulisemaid funktsioone on funktsioonide ülekoormamine. See tähendab koodi, millel on rohkem kui üks sama nimega, kuid erinevate argumentide loenditega funktsioon. Argumentide loend tähendab argumentide jada ja argumentide andmetüüpe. Funktsioonide ülekoormamist kasutatakse sarnaste toimingute tegemiseks. Seda kasutatakse koodi loetavuse parandamiseks. Funktsioon defineeriti uuesti, kuna pole mõtet luua kahte erinevat funktsiooni sama töö kordamiseks.

Süntaks

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

Mõlemad on sama funktsioon, kuid argumendid on erinevad. Nii et kui soovite lisada funktsiooni erinevat tüüpi andmeside jaoks, kasutades sama funktsiooni, saab funktsiooni C2 + abil programmeerimisel kasutada funktsiooni ülekoormamise funktsiooni.

C ++ kood näitab funktsiooni ülekoormamist C ++ programmeerimisel:

Kood:

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

Erinevad viisid C ++ funktsiooni ülekoormamiseks

C ++ programmeerimiskeeles funktsiooni ülelaadimiseks on mitu võimalust. Vaatame, kuidas seda teha:

1. Funktsiooni ülekoormamine

Kasutage koodide loetavuse suurendamiseks programmeerimisel. Seda saab määratleda kui 2 või enama samanimelise funktsiooni ülekoormamist, kuid erinevaid parameetreid nimetatakse funktsiooni ülekoormamiseks.

Süntaks:

DataType Functionname (parameter list)
(
Function body
)

Näide nr 1

Siin on C ++ kood funktsiooni ülekoormamise demonstreerimiseks, muutes argumentide arvu C ++ programmeerimisel:

Kood:

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

Näide 2

Siin on C ++ kood funktsiooni ülekoormamise demonstreerimiseks, omades C ++ programmeerimisel erinevat tüüpi argumente:

Kood:

#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. Operaatori ülekoormus

C ++ programmeerimiskeeles on mitu sisseehitatud operaatorit. Kodeerija saab neid operaatoreid kasutada nende sisseehitatud operaatorite ülelaadimiseks või uuesti määratlemiseks. See on kompileerimisaja polümorfism, milles ülekoormatud operaator on harjunud täitma ülesandeid kasutaja määratletud andmetüüpidel. Peaaegu paljusid operaatoreid saab C ++ programmeerimiskeeles üle koormata.

Süntaks:

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

Näide nr 1

Siin on C ++ kood, mis näitab operaatori ülekoormamist C ++ programmeerimisel:

Kood:

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

Näide 2

Vaatame, kuidas funktsioon ülekoormamisel tegelikult töötab? programmeerimisel C ++ kodeerimise näidete kaudu:

Kood:

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

Koodi seletus:

Ülaltoodud koodis oleme loonud funktsiooni erinevate andmetüüpide väljundi kuvamiseks, kuid kui märkate, et funktsioonide nimi on sama ja argumendid erinevad. Seejärel initsialiseerisime muutuja nimega x ja omistasime sellele väärtuse ja mõne väärtuse, mis omistati ka ujuk muutujale y. Pärast muutujatele x ja y väärtuste omistamist kutsusime funktsiooni, mida kuvatakse sisendväärtuse kuvamiseks väljundkuval.

Nagu näete funktsioonide nimesid, on argument kõigil kolmel juhul erinev. Esiteks kutsusime funktsiooni näita täisarvu muutujana alles pärast seda, kui funktsiooni näita funktsiooni näitame ainult ujukmuutuja väljundi kuvamiseks. Lõpuks kutsusime showfunktsiooni, millel on nii täisarv kui ka ujuki muutujad, et näidata väljundit ekraanil väljundina.

Nii töötab funktsioon C ++ programmeerimiskeeles tegelikult funktsiooni ülekoormamine. Sõltuvalt erinevatest andmetüüpidest saab sama funktsiooni kasutada sarnase toimingute komplekti teostamiseks.

Näide 3

C ++ kood näitab funktsiooni ülekoormamist C ++ programmeerimisel:

Kood:

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

Koodi seletus:

Ülaltoodud koodis lõime klassi X ja lõime täisarvu muutuja x ning kuulutasime seejärel kaks konstruktorit, nii et me ei peaks funktsiooni kutsumiseks objekte looma, kuna konstruktor lähtestab vastloodud klassi objekti automaatselt pärast mälu eraldamist . Kaks funktsiooni on loodud operaatoril ja ekraanil, et näidata kahe objekti lisamist funktsiooni ülekoormamise kontseptsioonide abil meie koodis.

Järeldus

Kokkuvõtteks võib funktsiooni C ++ ülekoormamise funktsiooni koodi loetavuse suurendamiseks kasutada mitmel viisil. See aitab säästa nii mälu kui ka kompileerimise aega C ++ keeles programmeerimisel. Kompileeritud aja polümorfismi kontseptsioon võetakse kasutusele ka operaatori ülekoormamise kontseptsioonide kaudu, kus peaaegu iga operaator saab ülekoormatud.

Soovitatavad artiklid

See on funktsiooni C ++ funktsiooni ülekoormamise juhend. Siin käsitleme erinevaid viise funktsiooni C ++ ülekoormamiseks koos erinevate näidete ja koodi rakendamisega. Lisateabe saamiseks võite vaadata ka järgmist artiklit -

  1. Kuidas rekursiivne funktsioon töötab C ++ -s?
  2. C ++ 3 parimat andmetüüpi
  3. C ++ ülekoormamise ja alistamise näited
  4. Stringimassiiv C ++-s mitme stringi massiivi

Kategooria: