Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Перегрузка функций. Тема 2.5. Перегрузка функций

Читайте также:
  1. V Производные обратных тригонометрических функций
  2. Алгоритм работы библиотечных функций malloc/free языка С
  3. Аналитическое выравнивание рядов динамики. Типы развития и соответствующие им уравнения функций.
  4. В. Расстройства интеграции психических функций
  5. Вегетативные рефлексы и центры регуляции вегетативных функций
  6. Возрастание и убывание функций.
  7. Возрастание и убывание функций.

Тема 2.5. Перегрузка функций. Перегрузка операторов.

При определении функций в программах необходимо указать тип возвращаемого функцией значения, а также количество параметров и тип каждого из них. Например, имеется функция с именем add_values, которая складывает два целых числа, а нам необходимо использовать данную функцию для сложения трех целых значений, то логично, что нужно создать функцию с другим именем. Например, вы могли бы использовать add_two_values и add_three_values. Аналогично если вы хотели использовать подобную функцию для сложения значений типа float, то вам была бы необходима еще одна функция с еще одним именем. Чтобы избежать дублирования функции, C++ позволяет определять несколько функций с одним и тем же именем. В процессе компиляции C++ принимает во внимание количество аргументов, используемых каждой функцией, и затем вызывает именно требуемую функцию. Предоставление компилятору выбора среди нескольких функций называется перегрузкой.

Основные концепции:

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

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

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

 

Например, следующая программа перегружает функцию с именем add_values. Первое определение функции складывает два значения типа int. Второе определение функции складывает три значения. В процессе компиляции C++ корректно определяет функцию, которую необходимо использовать:

#include <iostream.h>

int add_values(int a,int b)

{

return(a + b);

)

int add_values (int a, int b, int c)

(

return(a + b + c);

)

void main(void)

{

cout << "200 + 801 = " << add_values(200, 801) << endl;

cout << "100 + 201 + 700 = " << add_values(100, 201, 700) << endl;

}

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

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

#include <iostream.h>

void show_message(void)

{

cout << "Стандартное сообщение: " << "Учимся программировать на C++" << endl;

}

void show_message(char *message)

{

cout << message << endl;

}

void show_message(char *first, char *second)

{

cout << first << endl;

cout << second << endl;

}

void main(void)

{

show_message();

show_message("Учимся программировать на языке C++!");

show_message("B C++ нет предрассудков!","Перегрузка - это круто!");

 

Вывод:

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

 


Дата добавления: 2015-11-26; просмотров: 96 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.006 сек.)