Om het bovenstaande probleem (index probleem) op te lossen, is het goed om een pointer van een andere naam die uw object scant voor u naar het adres dat u op zoek bent naar te krijgen. Dit adres kan worden geretourneerd of ergens opgeslagen in een object (id). Op die manier de wijzer van de array (array naam) zijn positie en de indexering met de naam array zal blijven OK niet zal veranderen. De angst voor de indexering probleem zal er niet zijn. Om bovengenoemde code, zal de teruggegeven of opgeslagen adres dan worden gebruikt om te zien of dynamisch geheugen voorhanden.
U hebt een klasse (een object geïnstantieerd ervan) dat de scan aanwijzer zal hebben en dan terug of op te slaan het adres dat u wilt. Zo'n object kan een iterator genoemd worden. In de praktijk iteratoren voor de houders van de container bibliotheek zijn complexer dan deze. We zullen hier niet in een dergelijke complexiteit te gaan. De volgende code geeft de klasse van een eenvoudige iterator voor het bovenstaande probleem: class Iter {public: int * retPtr; Iter (int INDX, int * ptr) {int * iterPtr = ptr; for (int i = 0; i ++ iterPtr;} retPtr = iterPtr;} int * retrnPtr () {return retPtr;}};..
Er is één eigenschap en twee methoden in de klasse De eerste methode is de constructor Het heeft als parameters een index van het element waarvan de aanwijzer die u zoekt, en de aanwijzer naar het dynamisch geheugen array. In de eerste verklaring in de constructeur, wordt de wijzer van de array, die wijst naar het eerste element van de array toegewezen aan een pointer een initialisatie statement. Hierdoor pointer die stapsgewijs en niet de aanwijzer naar de array. Het voor-lus in de constructor verhoogt de pointer een aantal keren gelijk aan de index positie (INDX) verstuurd als argument.
De laatste verklaring van de constructeur wijst de uiteindelijke verhoogd aanwijzer naar de woning van de klas. De tweede methode in de klasse, keert deze laatste verhoogd waard