Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Очень часто алгоритмы обработки данных одинаковы, отличаются лишь типы обрабатываемых данных. Название (или имя) каждой функции указывает, что она делает и показывает тип выводимых данных. В C++ разрешается использовать одно и то же название (имя) функции, чтобы объявлять и определять различные версии функции. Эта возможность названа перегрузкой функции. C++ требует, чтобы соблюдались следующие правила при объявлении перегруженных функций:

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

2) если функция имеет параметры со значениями по умолчанию, компилятор не включает эти параметры как часть сигнатуры функции.

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

void Sort (int Mas[ ], int N); // целочисленный массив

void Sort (double Mas[ ], int N); // вещественный массив

void Sort (char Mas[ ], int N); // символьный массив

//--------------------------------------------------------------------------------- void main(){ int A[Nmax] = { 25, 18, 42, 76, 38} ;double B[Nmax] = { 1.5, 2.7, 5.4, 3.9, 7.2} ;char C[Nmax] = { ‘z’, ‘d’, ‘w’, ‘a’, ‘d} ;int N;

Sort(A, N); // или Input(&Mas[0], N); передаётся адрес 1-го элемента

}

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





Дата публикования: 2015-07-22; Прочитано: 281 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...