[英]was not declared in this scope
我回到了C ++,因為他們想在學校上學,但我遇到了問題。
我這樣定義結構:
struct Member{
string Name;
string Surname;
Member* Next;
};
第二結構:
struct List{
string Name;
Member* First;
int Size;
};
比下面我有一個功能:
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;
錯誤:在此范圍內未聲明“當前”。
我試圖這樣改變功能:
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;
盡管我雖然這樣做無濟於事,但我只是想嘗試一下。 我雖然該函數並不知道Member *的含義,但由於它不知道它是由什么構成的,所以它也存在箭頭和其他東西的問題。 我似乎很奇怪,而不是只有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
}
您需要將這些變量的名稱更改為其他名稱。 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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.