Если функция не объявлена void
, то у вас ДОЛЖЕН есть оператор возврата, сообщающий, каким должно быть значение при возврате вызывающей стороне. Если вы не можете сделать это и просто завершите функцию, не возвращая значение, результатом вызова этой функции будет «Неопределенное поведение» , что означает, что ваша программа может делать все что угодно (включая сбой или удаление всего, что находится на жесткий диск).
Обычно, если значение просто простое int, вы получите странные числа, но в более сложных случаях это может стать источником больших неприятностей. Только не делай этого.
Компиляторы, как правило, сообщают вам, что вы забыли оператор возврата, если правильно проинструктированы сделать это (т.е. включить максимальный уровень предупреждения). Вы можете опустить возврат значения только в тех случаях, когда функция фактически не возвращает (то есть выдает исключение или зацикливается навсегда).
Кроме того, из-за сумасшедшего специального правила языка C ++ функция main
может завершаться без оператора return
, несмотря на то, что она объявлена как возвращающая int
. Не тратьте свое время на поиски логической причины этого исключения, его нет.