Wprowadzenie do przeciążania funkcji w C ++

Programowanie w C ++ ma niesamowite funkcje, a jedną z najważniejszych cech jest przeciążanie funkcji. Oznacza kod mający więcej niż jedną funkcję o tej samej nazwie, ale z różnymi listami argumentów. Lista argumentów oznacza sekwencję argumentów i typy danych argumentów. Przeciążenie funkcji służy do wykonywania podobnych operacji. Służy do zwiększenia czytelności kodu. Przedefiniowano funkcję, ponieważ nie ma sensu tworzyć dwóch różnych funkcji do wykonywania tej samej pracy raz po raz.

Składnia

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

Oba mają tę samą funkcję, ale argumenty są różne. Więc jeśli chcesz wykonać dodawanie do różnych typów danych przy użyciu tej samej funkcji, funkcja przeciążenia funkcji może być używana w programowaniu w C ++.

Oto kod C ++ pokazujący przeciążenie funkcji w programowaniu w C ++:

Kod:

#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óżne sposoby przeciążenia funkcji w C ++

Istnieje kilka sposobów na przeciążenie funkcji w języku programowania C ++. Zobaczmy, jak możemy to zrobić:

1. Przeciążenie funkcji

Służy do zwiększenia czytelności kodu w programowaniu. Można go zdefiniować jako przeciążenie 2 lub więcej funkcji o tej samej nazwie, ale różne parametry są znane jako przeciążenie funkcji.

Składnia:

DataType Functionname (parameter list)
(
Function body
)

Przykład 1

Oto kod C ++, który demonstruje przeciążenie funkcji poprzez zmianę liczby argumentów w programowaniu w C ++:

Kod:

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

Przykład nr 2

Oto kod C ++, który demonstruje przeciążenie funkcji poprzez różne typy argumentów w programowaniu w C ++:

Kod:

#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. Przeciążenie operatora

Istnieje kilka wbudowanych operatorów w języku programowania C ++. Koder może użyć tych operatorów do przeciążenia lub przedefiniowania tych wbudowanych operatorów. Jest to polimorfizm w czasie kompilacji, w którym przeciążony operator jest wykorzystywany do wykonywania zadań na typach danych zdefiniowanych przez użytkownika. Prawie wielu operatorów może być przeciążonych w języku programowania C ++.

Składnia:

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

Przykład 1

Oto kod C ++ pokazujący przeciążenie operatora w programowaniu w C ++:

Kod:

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

Przykład nr 2

Zobaczmy, jak faktycznie działa przeciążenie funkcji? w programowaniu za pomocą przykładów kodowania w C ++:

Kod:

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

Kod Objaśnienie:

W powyższym kodzie stworzyliśmy funkcję pokazującą dane wyjściowe różnych typów danych, ale jeśli zauważysz, że nazwa funkcji jest taka sama, a argumenty są różne. Następnie zainicjowaliśmy zmienną o nazwie x i przypisaliśmy jej wartość, a także pewną wartość przypisaną do zmiennej zmiennoprzecinkowej y. Po przypisaniu wartości do zmiennych x i y wywołaliśmy pokazaną funkcję, aby wyświetlić wartość wejściową na ekranie wyjściowym.

Jak widać nazwy funkcji, ale argument jest inny we wszystkich trzech przypadkach. Najpierw wywołaliśmy funkcję show only zmienną całkowitą, a następnie wywołaliśmy show show, aby wyświetlić dane wyjściowe tylko dla zmiennej float. Na koniec wywołaliśmy funkcję show, która ma zarówno zmienne całkowite, jak i zmienne zmiennoprzecinkowe, aby wyświetlić dane wyjściowe na ekranie jako dane wyjściowe.

Tak właśnie działa funkcja przeciążania funkcji w języku programowania C ++. W zależności od różnych typów danych ta sama funkcja może być użyta do wykonania podobnego zestawu operacji.

Przykład nr 3

Oto kod C ++, który demonstruje przeciążenie funkcji w programowaniu w C ++:

Kod:

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

Kod Objaśnienie:

W powyższym kodzie stworzyliśmy klasę X i zmienną całkowitą x, a następnie zadeklarowaliśmy dwa konstruktory, abyśmy nie musieli tworzyć obiektów do wywołania funkcji, ponieważ konstruktor automatycznie inicjuje nowo utworzony obiekt klasy tuż po przydzieleniu pamięci . Dwie funkcje są tworzone operator i wyświetlacz, aby pokazać dodanie dwóch obiektów za pomocą koncepcji przeciążania funkcji w naszym kodzie.

Wniosek

Podsumowując, funkcja przeciążania funkcji w C ++ może być używana na wiele sposobów w celu zwiększenia czytelności kodu. Pomaga zaoszczędzić miejsce w pamięci oraz czas kompilacji podczas programowania w języku C ++. Koncepcja polimorfizmu w czasie kompilacji jest również wprowadzana poprzez koncepcje przeciążania operatora, w których prawie każdy operator może zostać przeciążony.

Polecane artykuły

Jest to przewodnik po funkcji przeciążania funkcji w C ++. Tutaj omawiamy różne sposoby przeciążenia funkcji w C ++ wraz z różnymi przykładami i implementacją kodu. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -

  1. Jak działa funkcja rekurencyjna w C ++?
  2. Top 3 typy danych w C ++
  3. Przykłady przeciążenia i przesłonięcia w C ++
  4. Tablica ciągów w C ++ tablica wielu ciągów znaków