Johdanto toiminnon ylikuormitukseen C ++: ssa

C ++-ohjelmoinnilla on uskomattomia ominaisuuksia ja yksi tärkeimmistä ominaisuuksista on toiminnan ylikuormitus. Se tarkoittaa koodia, jolla on useampi kuin yksi funktio samalla nimellä, mutta eri argumenttiluetteloilla. Argumenttiluettelo tarkoittaa argumenttijonoa ja argumenttien tietotyyppejä. Toiminnon ylikuormitusta käytetään vastaavien toimintojen suorittamiseen. Sitä käytetään parantamaan koodin luettavuutta. Toiminto määritettiin uudelleen, koska ei ole mitään syytä luoda kahta erilaista toimintoa saman työn suorittamiseen uudestaan ​​ja uudestaan.

Syntaksi

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

Molemmat ovat samaa toimintoa, mutta argumentit ovat erilaisia. Joten jos haluat suorittaa lisäyksen erityyppisiin tietotyyppeihin käyttämällä samaa toimintoa, toiminnon ylikuormitusominaisuutta voidaan käyttää ohjelmoinnissa C ++: lla.

Tässä on C ++ -koodi, joka osoittaa funktion ylikuormituksen C ++-ohjelmoinnissa:

Koodi:

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

Eri tapoja ylikuormittaa C ++ -toimintoa

C ++-ohjelmointikielellä on useita tapoja ylikuormittaa toiminto. Katsotaan kuinka voimme tehdä sen:

1. Toiminnon ylikuormitus

Käytä lisätäksesi koodin luettavuutta ohjelmoinnissa. Se voidaan määritellä 2 tai useamman saman nimen funktion ylikuormitukseksi, mutta erilaisia ​​parametreja kutsutaan funktion ylikuormitukseksi.

Syntaksi:

DataType Functionname (parameter list)
(
Function body
)

Esimerkki 1

Tässä on C ++ -koodi, joka osoittaa funktion ylikuormituksen muuttamalla argumenttien määrää C ++ -ohjelmoinnissa:

Koodi:

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

Esimerkki 2

Tässä on C ++ -koodi, joka osoittaa funktion ylikuormituksen omaamalla erityyppisiä argumentteja C ++ -ohjelmoinnissa:

Koodi:

#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. Operaattorin ylikuormitus

C ++-ohjelmointikielellä on useita sisäänrakennettuja operaattoreita. Kooderi voi käyttää näitä operaattoreita ylikuormittamaan tai määrittelemään uudelleen nämä sisäänrakennetut operaattorit. Se on käännösaikainen polymorfismi, jossa ylikuormitettu operaattori on tottunut suorittamaan tehtäviä käyttäjän määrittelemillä tietotyypeillä. Lähes monet operaattorit voidaan ylikuormittaa C ++-ohjelmointikielellä.

Syntaksi:

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

Esimerkki 1

Tässä on C ++ -koodi, joka osoittaa käyttäjän ylikuormituksen C ++-ohjelmoinnissa:

Koodi:

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

Esimerkki 2

Katsotaan kuinka funktion ylikuormitus todella toimii? ohjelmoinnissa C ++ -koodausesimerkkien kautta:

Koodi:

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

Koodin selitys:

Yllä olevassa koodissa olemme luoneet toiminnon, joka näyttää eri tietotyyppien tuotokset, mutta jos huomaat, että funktiot, nimi on sama ja argumentit ovat erilaisia. Sitten alustimme muuttujan nimeltä x ja annimme sille arvon ja jonkin arvon, joka annettiin myös kelluvalle muuttujalle y. Kun olet määrittänyt arvot x- ja y-muuttujille, kutsuimme näytettyä toimintoa tuloarvon näyttämiseksi lähtönäytössä.

Kuten näet toimintojen nimet, argumentti on erilainen kaikissa kolmessa tapauksessa. Ensin kutsuttiin funktiota Näytä kokonaisluvun muuttuja vain sen jälkeen, kun kutsumme Näytä funktio näyttääksesi vain kelluvan muuttujan ulostulon. Lopuksi kutsuimme show-toimintoa, jossa on sekä kokonaislukuja että kelluvia muuttujia näytön ulostulon näyttämiseksi näytöllä.

Näin funktion ylikuormitusominaisuus todella toimii C ++-ohjelmointikielellä. Eri tietotyypeistä riippuen samaa toimintoa voidaan käyttää suorittamaan samanlainen operaatio.

Esimerkki 3

Tässä on C ++ -koodi, joka osoittaa funktion ylikuormituksen C ++-ohjelmoinnissa:

Koodi:

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

Koodin selitys:

Yllä olevassa koodissa loimme luokan X ja kokonaisluvun muuttujan x ja julistimme sitten kaksi rakentajaa, jotta meidän ei tarvitse luoda objekteja toiminnon kutsumiseksi, koska rakentaja alustaa uuden luodun luokkaobjektin automaattisesti heti, kun muisti on varattu . Kaksi toimintoa luodaan operaattoriksi ja näytöksi osoittamaan kahden objektin lisääminen käyttämällä funktion ylikuormituskäsitteitä koodissamme.

johtopäätös

Yhteenvetona voidaan todeta, että C ++: n toimintojen ylikuormitusominaisuutta voidaan käyttää monin tavoin koodin luettavuuden parantamiseksi. Se auttaa säästämään muistitilaa ja kokoontumisaikaa ohjelmoidessaan C ++ -kielellä. Compile-time polymorfism -konsepti otetaan käyttöön myös operaattorien ylikuormituskonseptien avulla, joissa melkein jokainen operaattori voi olla ylikuormitettu.

Suositellut artikkelit

Tämä on opas funktion ylikuormitukseen C ++: ssa. Tässä keskustellaan C ++: n toiminnan ylikuormituksen eri tavoista yhdessä erilaisten esimerkkien ja koodin toteutuksen kanssa. Voit myös tarkastella seuraavaa artikkelia saadaksesi lisätietoja -

  1. Kuinka rekursiivinen toiminto toimii C ++: ssa?
  2. 3 suosituinta tietotyyppiä C ++: ssa
  3. Esimerkkejä C ++: n ylikuormituksesta ja ohittamisesta
  4. Merkkijono C ++: ssa joukko useita merkkijonoja