Язык программирования C++ для профессионалов


Функции - часть 2


Такое многократное использование имени называется перегрузкой имени функции или просто перегрузкой.

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

void swap ( int * p, int * q ) { int t = * p; * p = * q; * q = t; }

Унарная операция * называется косвенностью (или операцией разыменования), она выбирает значение объекта, на который настроен указатель. Функцию можно вызывать следующим образом:

void f ( int i, int j ) { swap ( & i, & j ); }

Если использовать передачу параметра по ссылке, можно обойтись без явных операций с указателем:

void swap (int & r1, int & r2 ) { int t = r1; r1 = r2; r2 = t; }

void g ( int i, int j ) { swap ( i, j ); }

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




Начало  Назад  Вперед