Функции в C++
Зачем нужны функции
Функция объединяет логически связанную операцию под именем. Она помогает избежать дублирования и разбить программу на понятные части.
int Add(int a, int b) { return a + b;}int main() { std::cout << Add(2, 3) << '\n';}int перед именем — тип возвращаемого значения; a и b — параметры. return завершает выполнение и возвращает результат вызывающему коду.
Объявление и определение
Объявление сообщает компилятору сигнатуру функции, а определение содержит тело:
int Multiply(int a, int b); // объявлениеint Multiply(int a, int b) { // определение return a * b;}Это позволяет разместить объявление в заголовочном файле, а реализацию — в .cpp.
void
Если функция не возвращает значение, укажи void:
void PrintMessage() { std::cout << "Готово\n";}В функции с возвращаемым типом, отличным от void, нужно обеспечить корректный возврат значения по всем путям выполнения.
Параметры и аргументы
Параметры перечисляются в объявлении функции. Аргументы — конкретные значения, передаваемые при вызове. По умолчанию обычные параметры передаются по значению: функция получает копию.
Область видимости
Переменные, объявленные внутри функции, локальны. Они не доступны снаружи, если не переданы через параметры или не возвращены. Глобальные переменные существуют на уровне файла/программы, но чрезмерное использование глобального состояния усложняет тестирование и сопровождение.
const и ссылки
Для чтения большого объекта без копирования можно принимать const-ссылку:
void PrintName(const std::string& name) { std::cout << name << '\n';}Функция не сможет изменить объект через такую ссылку.
Итог
Хорошая функция выполняет одну понятную задачу, имеет ясное имя и минимально необходимый набор параметров. Разделяй объявление и определение, когда это упрощает организацию проекта.
