11. april 2007 - 19:58Der er
10 kommentarer og 1 løsning
Struct eller classes?
Jeg læser i øjeblikket om classes og structs osv. Jeg bruger C++, Visual Studio 2005.
Jeg ville gerne høre lidt mere ind til hvornår man bruger structs og hvornår man bruger classes (eller begge dele på en gang?) Er der nogle tilfælde hvor man helt klart ville bruge struct (og omvendt) og er der nogle tidspunkter hvor det ville blive en rodedynge at bruge structs?
Jeg forsøger med dette spørgsmål at abstrahere lidt fra bare at sige "struct" og "class" og forsøge at forstå lidt dybere hvad der ligger til grund mellem at skulle vælge mellem disse.
Der vil jeg give arne ret. Brug structs til når du har en samling data'er som hænger sammen. Brug class hvis du nogle functioner som kun passer sammen med bestemte type data.
At bruge struct og classes skulle aldrig give noget rod, de er netop til for at få lidt mere struktur og samling på ens kode og data.
Har struct en form for private/public? Jeg ved at man kan neste structs, men om de har en slags private/public deklaration er jeg ikke klar over.
Hvis vi i øvrigt antager at jeg har en struct der hedder minStruct med en variabel (int) a. - er der overhovedet nogen forskel på at initialisere en struct på disse 2 måder (og i så fald - hvilke?):
En ting er at jeg bedst kan lide pointer strukturen, men den holder nok ikke helt i byretten hvis jeg påstår den er bedst bare fordi jeg er mest vant til "->" operatoren fra PHP classes ;)
Jeg får lyst til at henvise til et interview med Bjarne Stroustrup som berører dette på et mere abstrakt plan. Altså det med en klasse og dens muligheder for både at indeholde data og opførsel. Men alt med Stroustrup er måske ikke begynderniveau... :)
Tak skal I have :) Jeg har anskaffet mig noget læsestof som gerne skulle berøre disse punkter meget mere grundigt. Arne, vil du smide et svar? Du var trods alt først.
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.