ok tak... Men hvad synes du om opbygningen, vil du foreslå en anden måde??? Jeg skal bruge klassen til et double-linked-list, der skal kunne indeholde vilkårlige data.
I stedet for at have en void pointer, kunne du lave en template-klasse i stedet. Så slipper du for at skulle caste pointeren når du henter data ud af listen.
Men er det samme datatype, der skal i én instans af klassen ? I så fald kan du lave det templatiseret. Men ellers er void* fremgangsmåden også udmærket.
ok, takker for hjælpen. Et en lille spm. Hvordan sletter man bedst det en void pointer peger på, hvis den skal kunne pege på vilkårlig data??? (void* fisk; delete fisk eller delete[] fisk)
Hmm, jeg mener nu at det udelukkende er adressen, heapen bruger til at holde styr på hvor meget der er allokeret - så delete skulle virke, blot du bruger den rigtige pointer.
Det er muligt det er forkert, det er også muligt at det er systemspecifikt. Men i hvert fald virker følgende:
int main() { void * vp = (void*)new char[100]; printf("VP is: %08X",(unsigned long)vp); delete vp; }
grunden til at jeg skal bruge det hvis jeg vil opdatere et element i listen, men kan jeg godt ændre funktionen så funktionen returnere en pointer til data og så må kalderen sørge for at slette strukturen
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.