русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Double b_re, double b_im,


Дата додавання: 2014-11-28; переглядів: 732.


double& c_re, double& c_im)

{ c_re=a_re*b_re-a_im*b_im;

c_im=a_im*b_re+a_re*b_im;

}

 

Зверніть увагу на те, що розраховані значення дійсної та уявної частин комплексної величини c (c_re та c_im) передаються за допомогою параметрів-посилань, вони мають тип double&.

Таким чином, якщо ми створюємо функцію, що повинна змінювати стан деякого зовнішнього об'єкта, ми можемо обрати один із двох варіантів: використати параметр-покажчик або параметр-посилання. Різниця, яка виникає при їх застосуванні ілюструється у наступному прикладі процедурами swap1 і swap2. Призначення обох функцій однаково: обмін значеннями двох зовнішніх об'єктів типу long:

 

void swap1(long *px, long *py)

{ long R=*px; *px=*py; *py=R;

}

Приклад застосування функції swap1:

long a=3, b=4;

swap1(&a,&b);

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];

}


<== попередня лекція | наступна лекція ==>
Void main() | Void main()


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн