2017-10-02 19 views
-1

私は学校から私にそれが欲しいので、私はC++に戻っていますが、問題に遭遇しました。私は機能持っていた下記よりはこのスコープでは宣言されていません

struct List{ 
    string Name; 
    Member* First; 
    int Size; 
}; 

struct Member{ 
    string Name; 
    string Surname; 
    Member* Next; 
}; 

と第二の構造:

は、私はこのような構造体を定義し

int AddToList(Member* Member, List* List){ 
    if(List->First == nullptr){ 
     List->First = Member; 
     List->First->Next = nullptr; 
     return 1; 
    } 
    Member* Current = List->First->Next; 
    while(Current != nullptr){ 
     Current = Current->Next; 
    } 
    Current = Member; 
    Current->Next = nullptr; 
    return 2; 
} 

をしかし、私はラインよりもエラーが出ます:

Member* Current = List->First->Next; 

error: 'Current' was not declared in this scope.

私はこのような機能を変更しようとしました:

int AddToList(Member* Member, List* List){ 
    Member* Current = new Current; 
    if(List->First == nullptr){ 
     List->First = Member; 
     List->First->Next = nullptr; 
     return 1; 
    } 
    Current = List->First->Next; 
    while(Current != nullptr){ 
     Current = Current->Next; 
    } 
    Current = Member; 
    Current->Next = nullptr; 
    return 2; 
} 

しかし、私はちょうどライン上で同じエラーを取得:私は、これは助けませんが

Member* Current = new Current; 

をが、私はただ試したかった。私は機能がメンバー*が何を意味するのか分かっていませんでしたが、それが何を作ったのかわからないので、矢印やものにも問題があるでしょう。 1行でメンバー*がわからないように見えるのは、私にとっては不思議なことです。あなたが何か他にこれらの変数の名前を変更する必要が

int AddToList(Member* Member, List* List) { 
    // Member and List are the parameters, *not* the types 
    ... 
    Member* Current = List->First->Next; // syntax error, Member is a variable 
} 

+10

適切なインデントは常に有効ですが、変数スコープに関係する場合はさらに優れています。 – Borgleader

+0

さて、彼らは私がそれをする必要は決してなかったので、私はそれなしで移動することを学んだ、それを実現しなかった。 –

+2

型と同じ名前の変数を持つことは、実際に混乱するだけでなく、問題の理由も示します。 – Kevin

答えて

3

は、あなたはそれらの型と同じ名前の変数を持ちます。 C++の一般的な規約は、変数名にlowerCamelCaseまたはsnake_caseのいずれかを使用することです。

int AddToList(Member* member, List* list) { 
    // Member and List are the types 
    // member and list are the parameters 
    ... 
    Member* current = list->first->next; // Works now 
} 
+0

ありがとう:)これはこのような逆効果があるかもしれません。 –

関連する問題