ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 5) онлайн

Оператор return

Функция lbstokg() получает в качестве аргумента значение веса, выраженное в фунтах, которое хранится в параметре pounds. Эквивалентный вес в килограммах вычисляется путем умножения переменной pounds на константу и записывается в переменную kilograms. Значение переменной kilograms затем возвращается про- грамме с помощью оператора  return kilograms;

Обратите внимание на то, что значение веса в килограммах хранится как в функции lbstokg(), так и в функции main(), соответственно в переменных kilograms и kgs. В момент возвращения функцией значения происходит копирование значе- ния переменной kilograms в переменную kgs. Программа может получить значение переменной kilograms только через механизм возврата значения; доступ к самой переменной kilograms из программы невозможен. Все вышесказанное проиллю- стрировано на рис. 5.6.

Рис. 5.6. Возврат значения

Количество аргументов у функции может быть сколь угодно большим, но возвращаемое значение всегда только одно. Эта особенность функций является препятствием для нас в тех случаях, когда нам необходимо вернуть программе несколько значений, однако есть способы, позволяющие возвращать и несколь- ко значений при помощи функций. Одним из таких способов, который мы рас- смотрим в этой главе, является передача аргументов по ссылке. Другой способ — вернуть структурную переменную, в полях которой будут располагаться нуж- ные значения.

Всегда следует указывать тип значения, возвращаемого функцией. Если ва- ша функция не возвращает значения, то вместо типа возвращаемого значения должно присутствовать ключевое слово void. Если же вы не укажете возвраща- емый тип данных при объявлении функции, то по умолчанию возвращаемым типом будет int. Например, прототип:

somefunc();      // подразумевается возвращаемый тип int

 

указывает на то, что функция somefunc() возвращает значение типа int.

Это обусловлено причинами, имеющими корни в ранних версиях языка С. Однако на практике не следует использовать тип, возвращаемый по умолчанию. Лучше явно указывать возвращаемый тип даже в том случае, если этим типом является int. Это сделает ваш листинг более понятным и легко читаемым.

 

15