C++ c++;多重递归函数

C++ c++;多重递归函数,c++,function,recursion,forward-declaration,C++,Function,Recursion,Forward Declaration,在声明函数之前如何使用它 我有3个函数,每个函数都必须相互作用,但是我找不到一种方法使前面声明的函数与后面声明的函数相互作用。代码如下: int f(int a){ if (a==0){return 1;} if (a==1){return 2;} if (a==2){return 7;} return 2*f(a-1)+3*f(a-2)+3*f(a-3)+6*g(a-2)+2*g(a-3)+2*h(a-2); } int g(int b){ if (b

在声明函数之前如何使用它

我有3个函数,每个函数都必须相互作用,但是我找不到一种方法使前面声明的函数与后面声明的函数相互作用。代码如下:

int f(int a){
    if (a==0){return 1;}
    if (a==1){return 2;}
    if (a==2){return 7;}
    return 2*f(a-1)+3*f(a-2)+3*f(a-3)+6*g(a-2)+2*g(a-3)+2*h(a-2);
}

int g(int b){
    if (b==0){return 0;}
    if (b==1){return 1;}
    return f(b-1)+g(b-1)+h(b-1);
}

int h(int c){
    if (c==0){return 0;}
    if (c==1){return 1;}
    return f(c-2)+g(c-1)+g(c-2);
}

一个函数只需要知道另一个函数的名称、参数类型和返回类型就可以调用它。它不需要在您调用它的地方完全实现。只需先声明函数,然后再实现它们

// Declare before use
int g(int b);
int h(int c);

// Implement here
int f(int a){
    if (a==0){return 1;}
    if (a==1){return 2;}
    if (a==2){return 7;}
    return 2*f(a-1)+3*f(a-2)+3*f(a-3)+6*g(a-2)+2*g(a-3)+2*h(a-2);
}

int g(int b){
    if (b==0){return 0;}
    if (b==1){return 1;}
    return f(b-1)+g(b-1)+h(b-1);
}

int h(int c){
    if (c==0){return 0;}
    if (c==1){return 1;}
    return f(c-2)+g(c-1)+g(c-2);
}

你所寻找的是所谓的“前瞻性声明”。你会在谷歌上找到更多信息。使用转发声明,在这里你声明函数而不填写函数体。你的评论不应该是答案吗?