C ++

Перегрузка функций C ++

Перегрузка функций C ++

C ++ - гибкий язык программирования общего назначения. Этот язык программирования был первоначально создан Бьярном Страуструпом, датским ученым-компьютерщиком, еще в 1985 году. C ++ поддерживает полиморфизм, наследование и т. Д. В этой статье рассматривается перегрузка функций для достижения полиморфизма во время компиляции на языке программирования C ++.

Что такое функция?

Функция - это не что иное, как конкретный фрагмент кода, который выполняет конкретную задачу на основе предоставленных входных данных, и возвращает запрошенные результаты пользователю в форме вывода. Функции используются для устранения повторяющегося кода в больших базах кода.

После определения функции вы можете повторно использовать ее позже, либо в той же программе, либо в другой программе.

Синтаксис функции

Функция в C ++ имеет следующий синтаксис:

returnType имя_функции (список_параметров)



return return_value;

Операторы returnType, parameter_list и return необязательны. Функция в C ++ может возвращать не более одного значения. Если функция не возвращает никакого значения, returnType должен быть определен как void.

Что такое перегрузка функций?

В C ++ несколько определений функций могут иметь одно и то же имя функции, но с разными параметрами. Это называется перегрузкой функции. С помощью функции перегрузки функций полиморфизм времени компиляции может быть достигнут в C++.

Функции могут быть перегружены следующими способами:

  1. Количество параметров может быть разным
  2. Тип данных параметров может быть разным
  3. Последовательность параметров может быть разной

Однако возвращаемое значение не учитывается при перегрузке функции. 

Перегружены следующие функции:

  1. int сложение (int a, int b)
  2. сложение с плавающей запятой (float f, gloat g)
  3. сложение с плавающей запятой (float f, int i)
  4. сложение с плавающей запятой (int i, float f)
  5. int сложение (int a, int b, int c)
  6. добавление поплавка (float f, float g, float h)

Как видите, с помощью функции перегрузки функций в C ++ может быть несколько определений / функций с одним и тем же именем функции и в одной области.

Без функции перегрузки функций вам нужно было бы написать отдельную функцию [например, add_1 (), addition_2 () и т. Д.] Для каждого варианта. Например, вам может потребоваться написать добавление_1 (), чтобы добавить два целых числа, сложение_2 (), чтобы добавить два числа с плавающей запятой, и т. Д. Однако, как вы можете видеть выше, функцию перегрузки функции можно использовать для определения нескольких вариантов функции «add ()», сохраняя при этом то же имя функции.

Следующие функции не считаются перегруженными, поскольку единственное различие между ними - это тип возвращаемого значения (тип возвращаемого значения не учитывается при перегрузке функций в C ++):

  1. int сложение (int a, int b)
  2. сложение с плавающей запятой (int a, int b)

Примеры

Теперь, когда вы понимаете концепцию перегрузки функций, мы рассмотрим несколько рабочих примеров программ, чтобы лучше понять эту концепцию. Мы рассмотрим следующие примеры:

  1. Пример 1: простая функция
  2. Пример 2: Простая функция сложения
  3. Пример 3: Перегрузка функции (1)
  4. Пример 4: Перегрузка функции (2)
  5. Пример 5: Функциональная перегрузка (3)

Первые два примера объясняют, как обычные функции работают в C ++, а последние три примера демонстрируют возможность перегрузки функций в C++.

Пример 1: простая функция

В этом примере мы продемонстрируем, как можно определить и вызвать простую функцию в C++. Мы определим класс под названием «Display» и общедоступную функцию под названием «display ().»Из функции« main () »мы вызовем функцию« display () »с помощью объекта класса« Display »(d).

#включать
используя пространство имен std;
класс Display

общественность:
пустой дисплей ()

cout << "Hello World!" << endl;

;
int main ()

Дисплей d;
d.отображать();
возврат 0;

Пример 2: Простая функция сложения

В этом примере мы продемонстрируем, как определить простую функцию «сложение ()» в C++. Мы определим класс под названием «DemoAdd» и общедоступную функцию под названием «add ().»Из функции« main () »мы вызовем функцию« add () »с помощью объекта класса« DemoAdd »(d).

В этом примере текущая реализация функции «сложение ()» принимает только два целочисленных параметра. Это означает, что текущая функция «сложение ()» способна складывать только два целых числа.

Чтобы добавить три целых числа вместо двух, можно определить функцию с другим именем, например «сложение_1 ()». В C ++ функция может быть перегружена, что означает, что может быть определено другое определение функции «add ()» для добавления трех целых чисел и сохранения того же имени, i.е., "добавление().В следующем примере мы рассмотрим, как перегрузить функцию «сложение ()».

#включать
используя пространство имен std;
класс DemoAdd

общественность:
int сложение (int a, int b)

int результат;
результат = а + б;
вернуть результат;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res;
res = d.сложение (i1, i2);
cout << "Result = " << res << endl;
возврат 0;

Пример 3: Перегрузка функции (1)

В предыдущем примере мы определили функцию «сложение ()», чтобы складывать два целых числа и возвращать вычисленный результат. Теперь, в этом примере, мы перегрузим функцию «сложение ()», чтобы добавить три целых числа. Таким образом, мы сможем вызывать функцию «сложение ()» с двумя целочисленными аргументами, а также с тремя целочисленными аргументами.

Без функции перегрузки функций нам пришлось бы написать другую функцию с другим именем.

#включать
используя пространство имен std;
класс DemoAdd

общественность:
// Первое определение функции сложения ()
int сложение (int a, int b)

int результат;
результат = а + б;
вернуть результат;

// Перегруженная версия функции сложения ()
int сложение (int a, int b, int c)

int результат;
результат = a + b + c;
вернуть результат;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, i3 = 30, res1, res2;
res1 = d.сложение (i1, i2); // добавление () с 2 параметрами
res2 = d.сложение (i1, i2, i3); // добавление () с 3 параметрами
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
возврат 0;

Пример 4: Перегрузка функции (2)

В предыдущих разделах этой статьи вы узнали, что перегрузка функций может выполняться на основе различий в типах параметров. Здесь мы перегрузили функцию «сложение ()» на основе типа данных параметра. В первой версии функции сложения мы добавим две переменные целочисленного типа; а во второй версии мы добавим две переменные типа float.

#включать
используя пространство имен std;
класс DemoAdd

общественность:
// Первое определение сложения ()
int сложение (int a, int b)

int результат;
результат = а + б;
вернуть результат;

// Определение перегруженной функции
добавление поплавка (float f, float g)

результат с плавающей точкой;
результат = f + g;
вернуть результат;

;
int main ()

DemoAdd d;
int i1 = 10, i2 = 20, res1;
поплавок f1 = 10.5, f2 = 20.7, res2;
res1 = d.сложение (i1, i2); // добавление (int a, int b) будет вызываться
res2 = d.сложение (f1, f2); // добавление (float f, flat g) будет вызываться
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
возврат 0;

Пример 5: Функциональная перегрузка (3)

В этом примере функция «сложение ()» перегружена из-за различий в последовательности списка параметров. Это еще один способ перегрузить функцию в C++.

#включать
используя пространство имен std;
класс DemoAdd

общественность:
// Определение первой функции функции сложения ()
сложение с плавающей запятой (int a, float b)

результат с плавающей точкой;
результат = (с плавающей точкой) a + b;
вернуть результат;

// Определение перегруженной функции для функции сложения ()
сложение с плавающей запятой (float a, int b)

результат с плавающей точкой;
результат = a + (float) b;
вернуть результат;

;
int main ()

DemoAdd d;
int i1 = 10;
поплавок f1 = 10.5, res1, res2;
res1 = d.сложение (i1, f1); // добавление (int a, float b) будет вызываться
res2 = d.сложение (f1, i1); // добавление (float a, int b) будет вызываться
cout << "Result = " << res1 << endl;
cout << "Result = " << res2 << endl;
возврат 0;

Заключение

C ++ - универсальный и гибкий язык программирования, который широко используется в различных областях. Этот язык программирования поддерживает полиморфизм как во время компиляции, так и во время выполнения. В этой статье вы узнали, как добиться полиморфизма времени компиляции в C ++ с помощью функции перегрузки функций. Это очень полезная функция C ++, которая помогает программистам писать читаемый код. Это также может быть полезно для написания повторно используемого кода.

Экранный трекпад и указатель мыши AppyMouse для планшетов с Windows
Пользователи планшетов часто пропускают указатель мыши, особенно когда они привыкли пользоваться ноутбуками. Смартфоны и планшеты с сенсорным экраном ...
Средняя кнопка мыши не работает в Windows 10
В средняя кнопка мыши помогает пролистывать длинные веб-страницы и экраны с большим объемом данных. Если это прекратится, вы в конечном итоге будете и...
Как изменить левую и правую кнопки мыши на ПК с Windows 10
Совершенно нормально, что все устройства компьютерной мыши эргономичны для правшей. Но есть мышиные устройства, специально разработанные для левшей ил...