0

因此,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++。

4

2 回答 2

2

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

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

这样,您可以按任何顺序使用这些功能。

于 2013-03-25T22:43:43.867 回答
0

我假设你的意思是最后一个函数是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.

但是,我高度怀疑任何具有此类依赖关系的代码。

于 2013-03-25T22:44:56.140 回答