Gå til innhold

Nytt object i en funksjon


Anbefalte innlegg

Skrevet

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.

Videoannonse
Annonse
Skrevet
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.

Skrevet

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. :)

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...