Jeg er ny i C++ og leger derfor lidt. Dette virker, men er det muligt at lave noget lignende uden at oprette person2 med new. Altså ved kun at sige f.eks Person *Person2;
Problemet er at hvis jeg ikke bruger new, virker følgende ikke:
Når du siger \"Person *person2\" fortæller du blot at person2 er en Person-pointer. person2 indeholder ikke noget endnu og peger derfor ingen steder hen.
Ved new Person(\"x\",1) opretter du et element i hukommelsen så Person *person2 = new Person(\"Skipper\", 25); opretter elementet og tildeler værdien til Person-pointeren.
Først herefter kan du bruge indholder at pointeren.
Der er i princippet ingen forskel, da du i begge tilfælde kalder constructoren. Men new er nemmere at arbejde med (synes jeg i hvertfald), specielt når du skal generere objekter dynamisk
Efter min mening er der ingen grund til at bruger pointer objekter med mindre man arbejder med \' virtual funktioner \' dvs når man arbejder med arv og polymofi. Lær at arbejde med admindelige først når du så har fået lidt rutine kan du så bruge pointer objekter som er rigtig smart, da man istedet for at oprette 4 forskellige objekter bare kan nøjes med at oprette en new pointer og sætte den til at pege på den klasse som der skal oprettes ob jekt af...... Nu syntes jeg at det kom lidt langt ud :) men start med at få rutinen med admindelige objekter.
...der er også den forskel en du selv skal huske at fjerne objekter (med delete) du har allokeret med \"new\" (på heap\'en), mens objekter du har lavet på stakken automatisk bliver nedlagt når de går ud af scope. Giver det mening ?
tegnet \"->\" kan faktisk erstattes af \"*.\" Du kalder altså en funktion på en pointer, og det kan selvfølgelig kun lade sig gøre hvis du har fat i et objekt der er allokeret med \"new\".
mickni33(eller en anden) >> Hvorfor er det kun når man arbejder med \'arv/polymofi\', at man skal bruge pointer?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.