Перегрузка функций в C++
При реальном написании кода иногда одна и та же функциональная функция может обрабатывать разные типы объектов, поэтому функцию необходимо переопределить, что усложнит код. Чтобы решить эту проблему, C++ поддерживает перегрузку функций. .
Например, для задачи арифметического суммирования вам необходимо настроить функцию для получения входящих данных и их суммирования. Но как узнать, какой тип данных передал вызывающий модуль, как независимый модуль? Это могут быть целочисленные данные, конечно, это могут быть данные типа с плавающей запятой, или это могут быть целочисленный тип и тип с плавающей запятой (пока неизвестно, какой из них является целочисленным типом, а какой — типом с плавающей запятой), и Комплексный подход заключается в использовании различных функций формального параметра. Каждый тип функции формального параметра должен быть определен, то есть два типа int, два типа double, первый int и второй тип double. e, а также первый double и второй int определяют четыре функции для его реализации. Например, их имена: Add_double_double(), Add_int_double(), Add_int_int(), Add_double_int() и т. д. Не кажется ли это запутанным? ?
Затем появление перегрузки функций в C++ очень хорошо решает эту проблему. Перегрузка функций — это две или более функции с одинаковым именем функции, но с разными типами или номерами параметров. В зависимости от типа и количества параметров автоматически выбирается наиболее подходящая функция. для привязки вызовов, причем выбор осуществляется автоматически.
Например, в примере сложения только что:
#include<iostream>usingnamespacestd;intadd(inta,intb){cout<<(int,int)t;returna+b;}doubleadd(doublea,doubleb){cout<<(doble,double)t;returna+ b ;}doubleleadd(doublea,intb){cout<<(double,int )t;returna+b;}doubleleadd(inta,doubleb){cout<<(int,double)t;returna+b;}intmain(){cout<<add(2 ,3)<<endl;cout<<add(2.9,15.3)<<endl;cout<<add(10,9.9)<<endl;cout<<add(11.5,5)<<endl;return0;}
Результаты бега следующие:
Пожалуйста, внимательно прочитайте код. Чтобы определить, какая функция выполняется, мы добавляем внутрь функции оператор вывода cout, чтобы различать, какая функция вызывается.
Каждый должен экспериментировать самостоятельно, чтобы понять код!