Programmeren in C++/Pointers: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
k de pointer *pLeeftijd wordt gevuld met een adress wat in het voorbeld wel klopt maar in de uitleg niet. * bij pLeeftijd verwijderd
Nijdam (overleg | bijdragen)
etc
Regel 92:
Wat heb je nu gedaan? Denk er eerst zelf even over na, dan leg ik het uit....
 
We beginnen met het maken van een lokale variabele in de stack, genaamd 'mijnLeeftijd' en geven die de waarde 18.
 
In de vrije geheugenruimte maken we een pointer *'pLeeftijd' groot genoeg om het adres van een integer op te slaan.
 
Het adres van 'mijnLeeftijd' stoppen we in de pointer 'pLeeftijd' door middel van de operator & (adress of).
 
Vervolgens geven we de waarde weer die op het opgeslagen adres staat, 18 dus. Dit proces noemen we indirectie.
Regel 151:
Zo dat ziet er waarschijnlijk een beetje moeilijk uit, no worry. Hier is de uitleg.
 
We maken gewoon een class 'CSimpleCat' met een constructor en een aantal accessorfuncties. Dit moet je allemaal bekend voorkomen.
 
De variabelen zijn ook pointers naar variabelen in de vrije geheugenruimte. Dat hebben we net behandeld en dat snap je nu denk wel.
Regel 165:
}}
 
Wat zeggen we hier eigenlijk? In gewoon Nederlands zeggen we: "Maak een pointer van het type CSimpleCat in de vrije geheugenruimte met de naam 'pFrisky' wat een CSimpleCat is". Logisch? Niet echt hè.
 
'pFrisky' is dus van het zelf gemaaktezelfgemaakte type 'CSimpleCat'. Nu zorgen we er dus voor dat 'pFrisky' het juiste aantal bytes heeft dat 'CSimpleCat' nodig heeft. De opdracht new CSimpleCat zorgt er echter voor dat het ook echt een CSimpleCat wordt.
 
De eerste CSimpleCat is er dus om geheugen te reserveren, de tweede voor de definitie!
Regel 202:
}}
 
Waarom zetten we 'pFrisky' op 0? Als je dit niet doet krijg je een zogeheten wilde pointer. Het gevaar hiervan is, dat als je hem nog een keer verwijdert, in het mooiste geval je programma crasht, maar in het ergste geval je een vastloper krijgt.
 
Nu kan je namelijk veilig het volgende doen:
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.