logo search
ООП для Заоч / Пинчук Лозовская Программир на С

Void swap2(long &X, long &y)

{ long R=x; x=y; y=R;

}

Застосування функції swap2:

long a=3, b=4;

swap2(a,b);

У першому варіанті застосовано параметри-покажчики, у другому - параметри-посилання. Зверніть увагу на те, що виклики функцій swap1 і swap2 записується по різному.

Якщо параметром функції є масив, він ніколи не передається по значенню, замість цього передається адреса першого елементу масиву.

Простори імен

Ім'я функції, що не є членом класу, належить глобальному простору імен. Ім'я функції - члена класу належить простору свого класу. Всі імена, що оголошуються всередині функції, належать простору цієї функції. Цьому ж простору належать і імена параметрів, які оголошуються у заголовку функції.

Значення, що повертаються

Якщо тип, що повертається, позначено словом void, то така функція не повертає будь-якого значення. Такі функції називають процедурами. Наведена вище функція swap є такою процедурою. Взагалі функція може повертати: значення будь-якого раніше визначеного типу, або адресу об'єкта, або посилання на зовнішній об'єкт.

Дещо незвичним є випадок, коли функція повертає посилання. У прикладі, наведеному нижче, визначається функція F(i,k), що дозволяє звертатися до одновимірного глобального масиву R[400] як до двовимірної матриці розміром 20х20:

// Приклад 2

int R[400];

int& F(int i, int j)

{ return R[20*i+j];

}