2017-09-10 17 views
-4

I | mは、クラスまたは関数のスコープを理解することに問題があります。このプログラムは不完全ですが、私は同じクラス内の関数を使用することができず、別のクラスから関数を使用することができません。例えば:私はスコープの理解の問題

を言うエラー「『セレクタ』がこのスコープで宣言されていなかった」取得

あなたは私が間違っているかを把握助けることができますか?ありがとう

#include <iostream> 
using namespace std;  

int main(void){ 
selector(); 

} 

void selector(){ 
    linkedList test; 
    /* block of code */   
} 

class linkedList{ 
    Node *head; 
public: 
    linkedList(){ 
    head = NULL; 
    } 
    //other lines 
}; 

class Node{ 
public: 
    int data; 
    Node * next; 
} 
+2

デバッグヘルプ(「なぜこのコードは動作しませんか?」)には、**目的の動作**、特定の問題**エラー**、および質問自体にそれを再現するのに必要な最短コードが含まれていなければなりません。 – tambre

+1

C++のスコープは、Javaでのスコープと同じ方法で動作します。あなたの特定の問題は何ですか? – user0042

+0

クラスはありません! –

答えて

0

私はなぜクラスについて話しているのか分かりませんが、関数のスコープは宣言からファイルの終わりまでです。

void selector() { 
    // linkedList test; 
    /* block of code */   
} 

int main() { 
    selector(); // selector is in scope here 
} 

(。。。私はどちらか、なぜあなたはint main(void)をやっているかわからないことがCのものの多くはで引数なしのA C++関数はint main()のように見える)

:ちょうどあなたのコード内の二つの機能を入れ替えます
+0

私は注文について知りませんでした。これは機能するかもしれません。私はsthがまだそれに間違っていたかどうかを確認することができなかったので、コードにクラスを含めなかった。 –