Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

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


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

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

В качестве примера рассмотрим функции Sqware, предназначенные для вычисления площади прямоугольников и квадратов:

int Sqware(int a, int b);

int Sqware(int a);

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

int Sqware(int a, int b) {

     

return (a * b);

}

int Sqware(int a) {

     

return (a * a);

}

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

void main() {

     

int value;

           

value = Sqware(10, 20);

     

print(“Площадь прямоугольника равна %d”, value);

     

value = Sqware(10);

     

print(“Площадь квадрата равна %d”, value);

}



Содержание раздела