Вступ до перевантаження функцій у C ++

Програмування на C ++ має дивовижні функції, а однією з найважливіших особливостей є перевантаження функцій. Він означає код, що має більше однієї функції з тим же ім'ям, але з різними списками аргументів. Список аргументів означає послідовність аргументів та типи даних аргументів. Функція перевантаження використовується для виконання подібних операцій. Він використовується для підвищення читабельності коду. Перевизначив функцію, оскільки немає сенсу створювати дві різні функції для виконання однієї і тієї ж роботи знову і знову.

Синтаксис

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

Обидва функції однакові, але аргументи різні. Тож у випадку, якщо ви хочете виконувати додавання на різних типах даних за допомогою однієї і тієї ж функції, функція перевантаження функцій може бути використана при програмуванні на C ++.

Ось код C ++ для демонстрації перевантаження функцій у програмуванні на C ++:

Код:

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

Різні способи перевантаження функції на C ++

Існує кілька способів перевантажити функцію мовою програмування C ++. Подивимося, як ми можемо це зробити:

1. Функція Перевантаження

Використовуйте для збільшення читабельності коду в програмуванні. Його можна визначити як перевантаження 2 або більше функцій з тим же ім'ям, але різні параметри відомі як перевантаження функцій.

Синтаксис:

DataType Functionname (parameter list)
(
Function body
)

Приклад №1

Ось код C ++ для демонстрації перевантаження функцій, змінюючи кількість аргументів у програмуванні на C ++:

Код:

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

Приклад №2

Ось код C ++ для демонстрації перевантаження функцій за допомогою різних типів аргументів у програмуванні на C ++:

Код:

#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. Перевантаження оператора

Існує кілька вбудованих операторів на мові програмування C ++. Кодер може використовувати ці оператори для перевантаження або переосмислення цих вбудованих операторів. Це поліморфізм часу компіляції, в якому перевантажений оператор використовується для виконання завдань на визначених користувачем типів даних. Майже багато операторів можуть бути перевантажені мовою програмування на C ++.

Синтаксис:

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

Приклад №1

Ось код C ++ для демонстрації перевантаження оператора в програмуванні на C ++:

Код:

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

Приклад №2

Подивимося, як насправді працює перевантаження функцій? при програмуванні через приклади кодування C ++:

Код:

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

Пояснення коду:

У наведеному вище коді ми створили функцію для відображення результатів різних типів даних, але якщо ви помітили, ім'я функцій однакове, а аргументи - різні. Тоді ми ініціалізували змінну, що називається x, і призначили їй значення і деяке значення, присвоєне також плаваючій змінній y. Після присвоєння значень змінним x та y, ми викликали функцію, яка відображає вхідне значення на екрані виводу.

Як ви бачите, імена функцій, але аргумент відрізняється у всіх трьох випадках. По-перше, ми назвали функцію показати лише цілочисленну змінну, після чого ми назвали функцію show для відображення виводу тільки для плаваючої змінної. Нарешті, ми назвали функцію show, яка має як цілі, так і плаваючі змінні, щоб показувати вихід на екрані дисплея як вихід.

Ось як насправді функція перевантаження функцій працює на мові програмування C ++. Залежно від різних типів даних одна і та ж функція може використовуватися для виконання подібного набору операцій.

Приклад №3

Ось код C ++ для демонстрації перевантаження функцій у програмуванні на C ++:

Код:

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

Пояснення коду:

У наведеному вище коді ми створили клас X і створили цілу змінну x, а потім оголосили два конструктори, щоб нам не довелося створювати об'єкти для виклику функції, оскільки конструктор автоматично ініціалізує новостворений об’єкт класу відразу після виділення пам'яті . Дві функції створені оператором і відображають, щоб показати додавання двох об'єктів, використовуючи концепції перевантаження функцій у нашому коді.

Висновок

На закінчення, функція перевантаження функцій на C ++ може використовуватися декількома способами для підвищення читабельності коду. Це допомагає економити простір пам'яті, а також час компіляції під час програмування мовою C ++. Поняття поліморфізму в компільований час також вводиться через концепції перевантаження операторів, де майже кожен оператор може бути перевантажений.

Рекомендовані статті

Це посібник з перевантаження функцій на C ++. Тут ми обговорюємо різні способи перевантаження функції в C ++ разом з різними прикладами та реалізацією коду. Ви також можете переглянути наступну статтю, щоб дізнатися більше -

  1. Як працює рекурсивна функція в C ++?
  2. 3 найкращих типи даних у C ++
  3. Приклади перевантаження та перезавантаження в C ++
  4. String Array в C ++ масив з декількох рядків