Top.Mail.Ru
Ответы

C++ Как избежать ошибки "was not declared in this scope" (знаю что означает) проблема с функциями

Допустим имеем две функции в одной программе:

void foo1() { foo2(); }

void foo2() { foo1(); }

при компиляции выйдет ошибка "was not declared in this scope"
это значит что функция в которой мне надо вызвать другую функцию еще не объявлена, как исправить?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
7лет

Надо объявить функцию (declaration, prototype).
void foo2(); // показывает, что такая функция есть, но её определение находится где-то в другом месте.
void foo1() { foo2(); }
void foo2() { foo1(); }

Аватар пользователя
Ученик
7лет

Лучше создать заголовочный файл, #include "его" в основной код, и вот в нем объявить ВСЕ функции.

Это будет максимально приближено к более совершенным языкам.

В будущем люди наплюют на консервативность, засунут ее себе в очко и создадут компилятор C/C++, который автоматически будет это делать.

Пока можно воспользоваться возможностью автогенерации заголовков в IDE, а если там ее нет - то написать себе плагин для IDE.