On Tue, 19 Oct 2004 21:39:56 +0200
"Mogens Hansen" <mogens_h@dk-online.dk> wrote:
> >
> > "Kim Schulz" <kim@schulz.dk> wrote in message
> > news:20041019211034.704b679a@lifesuckz.nork.auc.dk...
> > hejsa
> > jeg sidder lige og overvejer om det på nogen måde er muligt at et
> > objekts footprint ændrer størrelse.
>
> Det kommer an på hvordan du opfatter et objekts footprint.
> For eet givet, gyldigt program vil sizeof(T) være konstant i hele
> programmet - det følger af one-defintion rule.
Den mængde data som kan repræsentere den data som et objekt indeholder
> Det betyder dog ikke at et objekts hukommelsesforbrug er konstant.
> Det er åbenlyst at selvom "sizeof(std::string)" er konstant i et
> program, vil objektets hukommelsesforbrug kunne afhænge af dets værdi
> (teksten).
dvs. at hvis jeg i mit objekt har en string og så denne bliver ændret
fra "hello world" til "hello beautiful world", så vil mit objekt som
strengen ligger inde i ændre størrelse?
> Det gælder også at sizeof(T) kan variere på tværs af programmer.
> Det afhænger bl.a. compiler options, hardware arkitektur (f.eks. pga.
> krav til alignment og størrelse af pointere og int) og bibliotek.
> F.eks. kan std::string være implementeret vidt forskelligt på 2
> forskellige platforme, og dermed fylde vidt forskelligt.
Samme compiler, platform og compiler options på alle maskiner vi
benytter.
> > Objektets data skal flyttes over et netværk (frem og tilbage) og det
> > er derfor vigtigt for mig at vide om det kan ændre størrelse på
> > nogen måde(hvis en af parterne på nettet har invoked en metode i
> > klassen og derved ændret på data i objektet.
>
> Den samlede mængde data, der udgør et objekt kan ændre størrelse.
ok.
--
Kim Schulz | Fundanemt Content Management system:
Geek by nature |
http://www.fundanemt.com
schulz.dk |
http://www.fundusers.org