puhbjörnMedlem sedan juni 2001255 inlägg
Jag har börjat försöka använda templates nu och jag tyckte att en länkad lista verkade vara ett testobjekt för det, så jag slängde ihop lite kod och allt gick bra tills jag skulle implentera det.
error C2248: 'l_list<T>::node::data' : cannot access private member declared in class 'l_list<T>::node'
Någon som vet vad det är som orsakar detta fel ? Detta är mitt första försök med templates och det finns säkert en massa slarvfel då koden var ihopslängd på 5 minuter.
spangoMedlem sedan juni 20006 147 inlägg
Var får du felet (fil/rad)?
puhbjörnMedlem sedan juni 2001255 inlägg
Jag får det här felet på flera rader i lista.h, rad 60, 16, 15 med mera. Men om vi kan lösa ett av dom så borde dom andra gå rätt så enkelt. Jag skulle kunna ladda upp buildlogen om det behövs.
spangoMedlem sedan juni 20006 147 inlägg
Ah. Felet är att medlemmarna i node är privata. Gör om node till en struct eller släng in public: innan medlemsdeklarationerna.
class node // node class
{
public:
T data;
node *next;
node *prev;
};
// eller
struct node // node class
{
T data;
node *next;
node *prev;
};
F.ö. borde du lägga koden i en separat cpp-fil i stället för att ha allt i h-filen. Endast metoddeklarationerna och vissa enklare metodkroppar bör ligga i h-filer.
puhbjörnMedlem sedan juni 2001255 inlägg
jaha, där var felet , trodde jag hade gjort en struct eftersom det var det jag hade tänkt göra när jag kodade. :r Jag hade även tänkt flytta över koden till en cpp fil så fort jag hade fort det att funka.
spangoMedlem sedan juni 20006 147 inlägg
Bra :)
Förresten kommer både RemoveNode GetNodeData att orsaka oändliga loopar. Variabeln i räknas aldrig upp.
Kom även ihåg att acceptera svar... :)
puhbjörnMedlem sedan juni 2001255 inlägg
Sådär svar accepterat och får försöka påminna mig om att det är en while-loop och ingen for-loop ;) och där fick vi förhoppningsvis svaret till varför mitt program kraschade ;)