17. september 2003 - 10:24Der er
15 kommentarer og 1 løsning
lægge float i varialbe og lægge dem sammen
Jeg har et meget simpelt spørgsmål og forstår simplethen ikke hvorfor det ikke virker.
her er den kode som ikke virker for mig
x = p->price; y = y + x;
x og y er defineret længere oppe i programmet som en float idet det er kommatal der regnes med.
P->price er en pris på et produkt som jeg får fra en server. Jeg får det rigtige tal og det lægges over i x, men det jeg så ikke forstår er at y også bliver lig med x. Det skal jo ske første gang jeg kører igennem, men da ikke når jeg kører igennem gangen efter der skulle jeg meget gerne have fat i det nye x og det gamle y. Det vil sige at y skal hele tiden bliver større og større til alle tal er talt sammen. Alt dette forgår i en switch statement.
det jeg vil have er at x skal sættes til en ny værdi hver gang jeg kommer derind. Y skal have x gamle værdi og de skal så lægges sammen hele tiden så y bliver total af alle x til sidst.
mieritz>> y bliver initialiseret i en funktion. Det betyder at oversætteren "laver en ny" y hver gang du kalder funktionen. Du har så bedt om at få y initialiseret til 0, og det vil oversætteren så også gøre for dig *hver gang du kalder funktionen*.
Så hvis du vil bevare y's værdi mellem kald af funktionen, så skal du enten gøre som arne foreslår (altså lav den static), eller også skal den defineres udenfor funktionen. I det tilfælde bør du (for at undgå grimme globale variabler) enten lade y være medlem af klassen TGetBill, eller være referenceoverført til funktionen.
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.