@vega2475

Как объявить функцию в другой функции?

При вызове в main() { F(7); } компилятор выдает ошибку: main.cpp: In function 'int F(int)':
main.cpp:9:17: error: 'G' was not declared in this scope
9 | return F(n-1) + G(n-2);
| ^

#include <iostream>
#include <cmath>
using namespace std;

int F(int n)
{
    
if (n > 2)
return F(n-1) + G(n-2);
else return 1;
}
int G(int n)
{
if (n > 2)
return G(n-1) + F(n-2);
else return 1;
}
int main()
{ 
cout << F(7);
return 0;
}
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Надо использовать forward declaration.

Перед F напишите
int G(int n);

Это скажет компилятору, что есть вот такая функция. Ее определение же остается также дальше по тексту после F.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы