Функции в C++ для начинающих Перегрузка функций

Сайт не является учебником по программированию. Это только небольшой авторский сборник информации в помощь начинающим программистам.

В С++ существует понятие Перегрузка функций. Благодаря возможностям языка функции не обязательно должны объявляться с уникальным именем. В качестве классического примера приводится создание функций для некоторого однотипного вычисления при различных типах данных.

Говоря конкретнее и понятнее для начинающих.
Надо создать две функции сложения. Первая функция будет складывать целочисленные значения типа int, вторая функция будет складывать дробные значения типа float.

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

Код С++ Вариант 1 (a+b). Уникальные имена функций

Код С++ Вариант 2 (a+b). Перегрузка функций

В первом варианте было объявлено две функции с уникальными именами. При этом при обращении к первой функции компилятор выполняет одну работу, при обращении ко второй функции выполняет другую работу. Работа программы зависит от типов данных, с которыми функции были объявлены.

Во втором же примере была сконструирована перегрузка функции, так как было создано две функции, которые аналогично первому варианту выполняют разную работу, но и в отличии от первого варианта — обе функции были названы одинаково.
Разная работа заключается в том, что при обращении к разным типам данных программа проводит вычисление по разному, несмотря на схожесть вычисления

Количество параметров в случаях перегрузки функции у функции может быть разным.

Код С++ Вариант 3 (a+b). Перегрузка функций. Число параметров разное

При правильном подходе в разработке больших проектов использование перегрузки функции может сэкономить значительное время.

Перегрузка функции имеет место быть потому что компьютер сравнивает типы и число параметров, и в случае если находит соответствие имени функции и сравниваемых параметров — вызывает такую функцию. В этом суть перегрузки функции.

Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

4 комментария: Функции в C++ для начинающих Перегрузка функций

  • Татьяна говорит:

    Большое спасибо за доступное изложение материала! 😛

  • Gen говорит:

    Спасибо!

  • Аноним говорит:

    А какие библиотеки при этом подключаются?
    никаких новых библиотек

    Автор сайта отвечает:
    никаких новых библиотек

    • WolfGrin говорит:


      Код не работает — ошибка: error C2668: ‘sum’ : ambiguous call to overloaded function
      насколько я понял, константы 5.0 и 6.0 которые передаются в функции, компилятор определяет как double, а поскольку функии принимающей в параметрах double нет, компилятор пытается преобразовать в другой подходящий тип — int или float, да вот не может выбрать в какой лучше. Если задать хоть один аргумент явно int или float, проблем не будет.

      Автор сайта отвечает:
      Всё так и есть. Можно еще дописывать дополнительную функцию для double или же просто использовать приведение прямо в момент передачи в функцию.
      myfunc(5.f,6.f);

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     
Яндекс.Метрика

НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор программирование на языке ада

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок