БЕСПЛАТНОЕ РЕШЕНИЕ ЗАДАЧ

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

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

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

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

#include 
using 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;
}
В программе описано четыре варианта функции showArgs(), назначение которой состоит в выводе на экран информации о ее аргументах. Однако в за­висимости от количества и типа аргументов выполняются немного разные действия. В частности, предусмотрены разные варианты передачи аргументов.

Оставить комментарий

Вы должны быть авторизованы , чтобы оставить или оценить комментарий.

Онлайн всего: 223
Гостей: 223
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте