Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Теоретическая значимость работы: Описание теоретической значимости (ценности) результатов исследования должно присутствовать во введении...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Возвращаемое значение функции — это значение, возвращаемое в точку вызова функции, после её выполнения.
Функции возвращают реальные значения или значения типа void, которое служит сигналом для компилятора, что никакое значение возвращено, не будет.
Для возврата значения применяется ключевое слово return, за которым следует подлежащее возвращению значение.
При выполнении return происходит мгновенный выход из функции.
По умолчанию результат, возвращаемый функцией, передается по значению, т.е. значение локальной переменной копируется в ту переменную, которой присваивается значение функции при ее вызове (или во временную переменную, если функция используется в выражении). При возврате большого объекта целесообразно возвращать ссылку или указатель для предотвращения копирования. Возврат ссылки или указателя может привести к тому, что возвращенный объект может быть изменен.
Чтобы предотвратить случайные изменения объекта с помощью возвращенной ссылки или указателя, возвращаемое значение нужно описывать как ссылку или указатель на константу:
const int &a(int i);
Способы передачи параметров функции. Передача по значению
Параметры в функции могут передаваться двумя способами: по значению и по ссылке.
void Function(char Ch);
При вызове функция может иметь вид:
Function (Ch2)
В памяти создаётся временная переменная Сh, в нее копируется значение аргумента Ch2. На этом связь между Ch и Ch2 разрывается. Можно изменять значение Ch внутри функции, но это никак не отразится на значении внешней переменной Ch2, указанной в вызове функции в качестве аргумента.
По умолчанию в С++ параметры передаются по значению, т.е. значения фактических параметров копируются в память, отведенную для формальных параметров. При этом значения, с которыми работает функция - это ее собственные локальные копии фактических параметров и их изменение на эти параметры не влияет. При окончании функции эти локальные значения теряются. Таким образом, при передаче по значению содержимое фактических параметров не изменяется.
Способы передачи параметров. Передача по ссылке
Для реализации передачи по ссылке передименем параметра в заголовке функции должен быть написан ‘&’.
void Function(char &Ch);
В этом случае не происходит копирования значения аргумента в локальную, временную переменную в процедуре. Процедура реально работает не с параметром, а со ссылкой – указателем на место хранения аргумента в памяти. Любые изменения параметра Ch в процедуре, в действительности относятся не к этомупараметру, а к тому аргументу, который был передан при вызове программы.
Передача параметра по ссылке позволяет возвращать информацию из функции в вызывавшую его внешнюю процедуру.
Параметры ссылки
<Тип ссылки>&<имя ссылки>;
Тип ссылки определяется спецификацией типа, за которой следует операция &
Примеры
1. int A = 5;
2. int& rA = A;
3. extern int& rB;
4. int& foo ();
5. void bar (int& rP);
65. Способы передачи параметров
Параметры (аргументы) функции, указываемые в списке при определении функции, называются формальными. Параметры, указываемые при вызове функции, называются фактическими.
Способы передачи:
· по значению [в стек заносятся копии значений аргументов; функция работает с копиями]
* значения фактических параметров копируются в память, отведенную для формальных параметров. При этом значения, с которыми работает функция - это ее собственные локальные копии фактических параметров и их изменение на эти параметры не влияет. При окончании функции эти локальные значения теряются. Таким образом, при передаче по значению содержимое фактических параметров не изменяется
· по адресу (ссылке) [в стек заносятся копии адресов аргументов и функция осуществляет доступ к ячейкам памяти по этим адресам. Могут изменяться исходные значения аргументов]
* При передаче параметров по ссылке каждый формальный параметр, который необходимо изменить, описывают с типом ссылка. Поскольку ссылка - это другое имя объекта и все действия, которые производятся над ссылкой, являются действиями над самим объектом, то при передаче параметра-ссылки внутри функции мы имеем дело с самим объектом, а не с его локальной копией. Это означает, что действия, произведенные в функции над формальными параметрами проводят к изменению фактических.
|
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!