783492jld Skrevet 7. april 2008 Skrevet 7. april 2008 Hei! Hvordan lager jeg en funksjon som lager et nytt objekt og samtidig legger en pointer i en liste? Mitt problem er at når jeg skal lage et nytt object må jeg lage navnet til objektet.
DeadManWalking Skrevet 7. april 2008 Skrevet 7. april 2008 Blir det ikke bare noe sånt ca? #include <iostream> using namespace std; int main() { int ptrList[10]; int *ptrInt = new int; ptrList[0] = *ptrInt; return 0; }
783492jld Skrevet 7. april 2008 Forfatter Skrevet 7. april 2008 Tusen takk! Nå fikk du satt meg på riktig spor.
Roptaty Skrevet 7. april 2008 Skrevet 7. april 2008 Blir det ikke bare noe sånt ca? #include <iostream> using namespace std; int main() { int ptrList[10]; int *ptrInt = new int; ptrList[0] = *ptrInt; return 0; } Nei. Du allokerer riktignok fra free store/heap, men du lagrer her innholdet i minneadressen, og ikke minneadressen. Et riktig eksempel ville vært: int* ptrList[10]; int* ptrInt = new int(0); // initialisere int til 0 ptrList[0] = ptrInt; Denne løsningen har endel buts... f.eks du må holde rede på hvor mange objekter du har i lista samt. forhindre at den vokser over allokert størrelse, samt holde rede på hvor stor den er. Her bør du heller vurdere å bruke en std::vector eller std::list.
_vamecum Skrevet 7. april 2008 Skrevet 7. april 2008 Dette er da slettes ingen liste. bruk noe alla std::list<int*> myList; myList.push_back(new int(42));
Roptaty Skrevet 8. april 2008 Skrevet 8. april 2008 Nå er strengt talt en liste en kolleksjon/samling av flere objekter/enheter, og det er det jo i en array. Bruk av en std::list til denne aktuelle problemstillingen er en bedre løsning enn en array.
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å