Gjest Skrevet 27. oktober 2012 Del Skrevet 27. oktober 2012 Heisann Jobber litt med et program og har støtt på litt hodebry vedr. pekere. Programmet jeg lager genererer en todimensjonal matrise. Hver enkel rute i dette programmet er representert med et objekt som jeg har kalt 'gridHelper'. Matrisen blir generert via: private: gridHelper *rute[100][100]; Fra en annen klasse jeg kaller 'Monster'. Dette er altså en matrise som kan inneholde 100x100 ruter som dere sikkert ser. Saken er at jeg gjerne vil ha et tredje objekt. Alle gridHelper (rutene) objektene skal peke på den samme adressen/objektet. Monster objektet tar seg forøvrig av initialiseringen av dette objektet. Jeg har prøvd å initialisere objektet i Monster objektet og sendt adressen til en peker i gridHelper via konstruktøren. Men det ender bare opp med at et unikt objekt blir lagd for hver rute. Svaret er sikkert enkelt, men det er en stund siden jeg har programmert i C++ og jeg er litt shaky med henhold til syntaksen, jeg gjør nok noe feil som er vanskelig for meg å få øye på, men folk med langt mer erfaring kan sikkert finne en enkel løsning på dette. Forøvrig: monster.h: private: gridState state; // Objektet rutene skal peke på gridHelper *rute[100][100]; gridhelper.h: public: gridHelper(gridState& gState); private: gridState *state; // Pekeren til objektet initialisert av monster objektet gridHelper::gridHelper(gridState& gState) { state = &gState; } Forslag? Lenke til kommentar
etse Skrevet 27. oktober 2012 Del Skrevet 27. oktober 2012 (endret) Nå er det litt vanskelig å forstå hva som er problemet. Men ser du bruker pekere noen plasser og referanser ander plasser. Det å blande disse tingene gjør at man ofte blir forvirret. Poenget med referanser at man kan bruke de som vanlige variabler og ikke som pekere, selv om de i grunn egentlig er noe som minner om pekere. Hva om du endrer gridhelper.h til noe slikt, og bruker pekere i stede for referanser. public: gridHelper(gridState *gState); private: gridState *state; // Pekeren til objektet initialisert av monster objektet gridHelper::gridHelper(gridState *gState) { state = gState; } Endret 27. oktober 2012 av etse Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q Skrevet 27. oktober 2012 Del Skrevet 27. oktober 2012 Herregud, Haha! Tror jeg må sette meg ned med en god c++ bok og lese igjennom kapittelet med pekere igjen. Det er snart 17 år siden jeg lærte C++ på skolen, men allikevel. Forslaget ditt fungerte ypperlig. Tusen takk! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå