2012-04-03 12 views
0

私は関数 "void foo()"を持っていて、関数fooの中では "void bar()"を呼び出します "関数foo() 'はこの範囲で宣言されていませんでした。C++関数スコープ

私はいくつかの研究を行っており、役に立たないものは見つけられないようです。 誰もが問題を知っていますか?私はそれはおそらく単純だが、答えを見つけることができないと確信しています。

+0

あなたはあなたのコードを投稿することができますか? – hmjd

+0

コードを表示してください。 –

+1

これはトラップです!コードを表示しないでください! – Anycorn

答えて

2

関数を使用する前に宣言していません。

は何か試してみてください:

また
void bar(); //declaration 
void foo() 
{ 
    bar(); 
} 

bar()が異なるヘッダで宣言されている場合、あなたは代わりにそのヘッダーを含めることができます。あるいは、をfoo()の前に定義することもできます(もちろんbar()はfoo()を使用します)。

+0

私は、それは全体の機能です、ホールド、私はコードを投稿します。 –

+0

問題なく、バーがfooの後に宣言され、問題が解決しました。はい、私は恥ずかしいと感じます! –

1

その同じファイルにした場合:その別のファイルにした場合

void bar() 
{ 
} 

void foo() 
{ 
bar(); 
} 

#include<bar.h> //header in which bar() is declared 

void foo() 
{ 
bar(); 
}