Перегрузка функций в С++
Функции в С++ обладают замечательным свойством - их можно перегружать. Под перегрузкой подразумевают создание и использование функций с разными прототипами, но одинаковыми названиями. Поскольку название функции является частью ее прототипа, становится понятно, что отличаются прототипы не названием, а числом и типом аргументов и ти пом возвращаемого результата. Причем вполне достаточно хотя бы одного отличия.
Перегрузка функций - инструмент мощный и весьма полезный. Обычно перегрузку используют в тех случаях, когда приходится выполнять однотипные действия с разными объектами или разными типами данных.
При перегрузке функции, фактически, создается несколько функций с одинаковыми названиями, которые, однако, можно различить по остальным их атрибутам. При вызове презагруженной функции в программе выбор нужного варианта функции осуществляется исходя из использованного синтаксиса вызова функции. В листинге ниже приведен пример перегрузки функции.
В программе описано четыре варианта функции showArgs(), назначение которой состоит в выводе на экран информации о ее аргументах. Однако в зависимости от количества и типа аргументов выполняются немного разные действия. В частности, предусмотрены разные варианты передачи аргументов.
Перегрузка функций - инструмент мощный и весьма полезный. Обычно перегрузку используют в тех случаях, когда приходится выполнять однотипные действия с разными объектами или разными типами данных.
При перегрузке функции, фактически, создается несколько функций с одинаковыми названиями, которые, однако, можно различить по остальным их атрибутам. При вызове презагруженной функции в программе выбор нужного варианта функции осуществляется исходя из использованного синтаксиса вызова функции. В листинге ниже приведен пример перегрузки функции.
#includeusing namespace std; //Первый вариант функции: void showArgs(double x){ cout << "Double-number " << x << endl; } //Второй вариант функции: void showArgs(double x,double y){ cout << "Double-numbers " << x << " and " << y << endl; } //Третий вариант функции: void showArgs(char s){ cout << "Symbol " << s << endl; } //Четвертый вариант функции: int showArgs(int n){ return n; } int main(){ int n=3; double x=2.5,y=5.1; char s='w'; //Первый вариант функции: showArgs(x); //Второй вариант функции: showArgs(x,y); //Третий вариант функции: showArgs(s); //Четвертый вариант функции: cout << "Int-number " << showArgs(n) << endl; return 0; }