Лекция: Сравнение параметров ссылочного типа и параметров - значений.
Что будет выведено?
void fun1(int a, int &b, int &c) { int d; a=…; b=…; c=…; d=…;
/* Вместо многоточиячисла или выражения */
cout<<a%c<<" "<<(b / d )<<endl; }
int main()
{ int u=…, v=…, w=…, z=…;
/* Вместо многоточия числа или выражения*/fun1(u,v,w);
cout<<u<<" "<<v<<" "<<(w + z)<<endl;
getch(); return 0; }
Заголовок функции может быть другим, зависит от того, какие параметры объявлены со ссылочным типом:
void fun1(int a, int b, int &c)
// илиvoid fun1(int &a, int &b, int c) и т.п.
7. Сравнение функций типа void и отличных от типа void.
Пусть описаны функции
void FVoid (int x, int y, int &r) { r=x+y; }
int FInt (int x, int y, int &r) { r=x-y; return x/y; }
Укажите номера строк, в которых правильные вызовы функций. Что будет выведено для правильных вызовов?
int main() { int R;
if (FVoid (12, 12, R)) //1
cout<<" Yes "<<R; else cout<<" No "<<R;
if (FInt (14, 12, R)) //2
cout<<" Yes "<<R; else cout<<" No "<<R;
FVoid (12, 12, R); //3
R? cout<<" Yes ": cout<<" No "; cout<<R;
FInt (4, 14, R); cout<<" "<<R<<" "; //4
int RES=0, x=12; RES= FVoid (x, 12, 3); //5
RES? cout<<«Yes»: cout<<«No»; cout<<RES;
RES=0; x=12; RES= FInt (x, 12, 3); //6
RES? cout<<«Yes»: cout<<«No»; cout<<RES;
getch(); return 0; }
В других более простых вариантах функции Fint записаноreturn r; т. е. одно и то же выражение получается и с помощью переменной, и возвращается с помощью return.
В тексте функции может быть более сложное логическое выражение или использоваться другие операции (см. упражнения и тесты гл.1).