Je reviens à C++ parce qu'ils le veulent de moi pour l'école mais j'ai rencontré un problème.n'a pas été déclaré dans cette portée
I défini struct comme ceci:
struct Member{
string Name;
string Surname;
Member* Next;
};
et 2ème structure:
struct List{
string Name;
Member* First;
int Size;
};
que ci-dessous j'avais une fonction:
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;
}
Mais je reçois une erreur que la ligne :
Member* Current = List->First->Next;
error: 'Current' was not declared in this scope.
J'ai essayé de changer la fonction comme ceci:
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;
}
Mais je reçois la même erreur que sur la ligne:
Member* Current = new Current;
Bien que je pensais que ce ne sera pas aidé, mais Je voulais juste essayer. Je pensais que la fonction n'était pas consciente de ce que le membre * voulait dire mais qu'elle aurait aussi des problèmes avec les flèches et autres choses, car elle ne saurait pas de quoi il s'agit. Cela me semble bizarre que seulement 1 ligne semble ne pas savoir ce qu'est le membre *.
indentation correcte est toujours bonne, mais encore mieux quand la question a trait à la portée des variables. – Borgleader
Eh bien, ils ne m'ont jamais demandé de le faire, alors j'ai appris à naviguer sans elle, je ne m'en suis pas rendu compte. –
Avoir des variables avec les mêmes noms que les types est non seulement vraiment déroutant, mais aussi la raison de vos problèmes. – Kevin