Читайте также: |
|
Перегрузка функций – использование одного и того же идентификатора (имени) для именования разных функций, совершающих семантически сходные действия над аргументами разных типов.
В случае, когда разные функции осуществляют похожие действия над данными разных типов, удобно присвоить им одинаковое имя.
Пример: возведение в квадрат.
Язык C++ позволяет создавать функции с одинаковым именем. Можно написать так:
int Square(int x) { return x * x; };
double Square(double x) { return x*x; };
float Square(float x) { return x * x; };
…
Для того, чтобы определить, какую из перегруженных функций необходимо вызвать, производится проверка соответствия списка параметров при вызове функции и списка параметров при объявлении функции.
int SquareI(int x) { return x * x; };
double SquareD(double x) { return x*x; };
float SquareF(float x) { return x * x; };
…
double a = 1;
double d = Square(a);
Алгоритм выбора перегруженной функции:
для обнаружения соответствия используется понятие “сигнатура”.
Сигнатура – список типов параметров функции.
int SquareI(int x) { return x * x; };
// сигнатура “int”
double SquareD(double x) { return x * x; };
// сигнатура “double”
float SquareF(float x) { return x * x; };
// сигнатура “float”
Алгоритм выбора перегруженной функции действует так:
Дата добавления: 2015-10-02; просмотров: 42 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Тип_возвращаемого_значения operator знак_операции | | | Наследование классов. |