Возвращаемое значение
Функции могут, но не обязаны возвращать значения. Для возврата значения используется ключевое слово return
.
int A(){ // Объявляем функцию A которая возвращает значение типа int
return 5; // Возвращаем значение типа int равное 5
}
int B = A(); // Присваиваем глобальной переменной B результат вызова функции A, тобишь 5
void
Чтобы обозначить, что функция ничего не возвращает, используется ключевое слово void
:
void [[[main|main.html]]](){} // Эта функция никому ничего не возвращает
Возврат ссылки
Функции могут возвращаться ссылки используя оператор &
.
int A; // Объявляем неинициализированную переменную A типа int
int& B(){ // Объявляем функцию, которая вернёт ссылку на переменную типа int
return A;
}
void [[[main|main.html]]](){
B() = 5; // Вызываем функцию B и устанавливаем возвращаемой переменной A значение 5
}
Для обеспечения гарантий, что ссылка не умрёт раньше времени установлены следующие правила для возвращаемых значений:
- Глобальные переменные
Разрешены, так как живут всё время исполнения кода.
- Локальные переменные
Запрещены, ибо будут очищены сразу после возврата.
- Свойства класса
Разрешены. Родительская функция будет хранить ссылку на экземпляр класса до своей смерти.
Last modified: 16 October 2024