Deklarier die Variable einfach als static. Dann wird sie beim ersten ausführeen der Funktion angelegt und erst beim Prgrammende gelöscht -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
du kannst auch einen pointer oder eine referenz auf die variable übergeben
C++:
int x=3;y=5;
void swap(int x,int y){int help=x;x=y;y=help;} //wen du es so machst wird zwar getauscht aber wenn die funktion am ende durch ist steht in x immer noch 3 und in y dir 5 weil nur mit kopien von x und y gearbeitet worden ist die am ende der funktion wieder gelöscht werden.
void swap(int *x, int *y){int help=*x;*x=*y;*y=help;} //hierbei steht auch nach dem durchlaufen der funktion in x die 5 und in y die 3 weil nicht die variablen selber sondern die pointer kopiert wurden
void swap(int &x, int &y){int help=x;x=y;y=help;} //ist ähnlich wie bei den pointer nur das du dir das dämliche referenzieren ersparst. es wird nicht mit kopien gearbeitet sondern direkt mit den addressen
-- ...fleißig wie zwei WeißbroteDieser Post wurde am 07.11.2003 um 12:06 Uhr von Windalf editiert.
Nach dem Durchlaufen einer Funktion soll eine !! VARIABLE !! ihren wert behalt, und beim erneuten ausführen der Funktion verwenden??
entweder hab ich gar nicht verstanden was der will oder... Ich fand meine beispiele in bezug zu dieser fragestellung recht hilfreich, besonders weil ich was gegen globale variablen habe.
die variable behält doch so den wert der innerhalb der funktion errechnet wurde
würde er z.b. sowas schreiben wollen und wolte das mehrmals aufrufen
C++:
int i=0; void increment(int i){++i;}
wäre meine erläuterung doch recht hilfreich oder nicht? -- ...fleißig wie zwei WeißbroteDieser Post wurde am 07.11.2003 um 13:02 Uhr von Windalf editiert.
Ne ausführliche Erklärung dazu, wie das funktioniert, gibts in der FAQ: www.fun-soft.de/showtopic.php?threadid=4351 -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
@Windalf, glaube ich nicht. Sieh doch mal RedEagles Beispiel an. Er will eine Variable innerhalb einer Funktion ohne Parameter erhalten. Ich glaube nicht, dass zu diesem Zweck eine Referenz auf eine Variable ausserhalb einzuführen besonders sinnvoll ist.
@Tommix Jo und ich bin davon ausgegangen das er auf diese Idee mit dem erhalten gekommen ist weil das andere mit dem übergeben der Funktion nicht geklappt hatte.
Mag sein das du recht hast und du ihm das gesagt hast was er meinte, ich habe da wohl was falsches vermutet.
Auf jeden Fall hab ich dieses eine mal richtig gelesen und versucht mal nicht ohne Hirn und Verstand zu posten wie das ja sonst zugegebener weise schon leider ein paar mal vorgekommen ist. -- ...fleißig wie zwei Weißbrote