Я думаю, что ваш учитель - старый программист на Си.
Если вы написали программу на С без предварительных объявлений и одну функцию, вызванную другой функцией, объявленной позже в файле (или в другом модуле компиляции), компиляторне будет жаловаться, но молча притворяется, что знает, каким должен быть прототип.
Отладка ужасна, если вы не знаете, правильно ли ваш компилятор передает аргументы.Поэтому это была хорошая оборонительная политика - всегда объявлять все функции;по крайней мере, компилятор мог вызвать ошибку, если объявление не соответствовало реализации.
Компиляторы и инструментальные средства C стали лучше (я надеюсь).Вызов неизвестной функции все еще не является ошибкой, но, например, GCC достаточно любезен, чтобы предупреждать по умолчанию.
Но в C ++ нельзя вызывать функцию, которая не была объявлена или определена.Следовательно, программисты на C ++ не сильно беспокоятся о предварительных декларациях.