나는 학교에서 저에게 그것을 원하기 때문에 C++로 돌아가고 있지만 문제가 발생했습니다. 내가하는 기능이 있었다 아래보다는이 범위에서 선언되지 않았습니다
struct List{
string Name;
Member* First;
int Size;
};
:
struct Member{
string Name;
string Surname;
Member* Next;
};
, 2 차 구조 :
는이 같은 구조체를 정의
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 줄이 Member *가 무엇인지 알지 못하는 것보다 나에게 이상한 것 같습니다. 당신은 뭔가 다른 이들 변수의 이름을 변경해야
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
}
:
적절한 들여 쓰기는 항상 좋은 그러나 문제는 변수 범위 지정에 관한 더 나은 경우. – Borgleader
글쎄 그들은 그것을하지 않아도되는 것을 배웠을 때 그렇게하지 않을 것을 결코 깨닫지 못했다. –
형식과 이름이 같은 변수를 사용하는 것은 혼란뿐만 아니라 문제의 원인이기도합니다. – Kevin