使用在当前函数下面声明的函数(允许循环依赖)

Use function declared below current function (allow circular dependency)?

本文关键字:函数 许循环 依赖 循环 声明      更新时间:2023-10-16

所以c++不允许我在声明函数的地方使用函数(换句话说,函数的行号必须小于它的使用行号)。我的问题是我的函数都依赖于至少一个函数。换句话说:

void funct1()
{
     if (something is true)
     {
         funct2();
     }
     else
          cout << someResult;
}

void funct2()
{
     if(something is true)
     {
         funct3();
     }
     else
          cout << someResult;
}
void funct3()
{
     if (something is true)
     {
         funct1();
     }
     else
          cout << someResult;
}
}

换句话说,在某些情况下,每个函数都需要调用其他函数中的一个。不管函数的顺序是什么,这都行不通因为至少有一个依赖于它下面的东西。我如何使编译器在编译时看到当前函数下面(即读取所有内容然后决定什么是有效的)我在CodeBlocks上使用g++。

在函数定义之前添加一些前向声明:

void funct1();
void funct2();
void funct3();

我假设您的意思是最后一个函数是funct3。您可以使用单个前向声明:

void funct2();
void funct1() { if(something is true) { funct2(); } else cout << someResult; }
void funct3() { if(something is true) { funct1(); } else cout << someResult; }
void funct2() { if(something is true) { funct3(); } else cout << someResult; }

它刚刚完成循环。funct2 <- funct1 <- funct3 <- funct2 .

但是,我非常怀疑任何有这样依赖关系的代码