0

したがって、C ++では、宣言した場所より上にある関数を物理的に使用できません(つまり、関数は使用よりも小さい行番号である必要があります)。私の問題は、私の機能がすべて他の少なくとも1つに依存していることです。言い換えると:

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;
}
}

つまり、各関数は、場合によっては他の関数の1つを呼び出す必要があります。少なくとも1つはその下の何かに依存しているため、これは関数の順序に関係なく機能しません。コンパイル時にコンパイラを現在の関数の下に表示するにはどうすればよいですか(つまり、すべてを読んでから何が有効かを判断します)。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 に答える