Klasse um Variablen zu speichern und später wieder abzurufen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Klasse um Variablen zu speichern und später wieder abzurufen

    hi hi hi!

    mal was (vllt) nützliches von mir!
    mir war langweilig, und ich dachte das man so etwas evtl mal brauchen könnte!
    natürlich opensource ^^
    bitte nicht über prog-stil mäckern und mir pls fehler sagen wenn ihr welche findet!
    schaut auch den source an, und führt das ganze mal aus, is denk ich weitgehend selbsterklärend...

    beschreibung:

    man hat ne variable, und denk sich: "die hat nen wert, den die später nochmal braucht, aber ich will jetzt keine extra temporäre variable dafür machen..."
    also packen wir alles in eine klasse mit template und für ganz viele variablen zusammen!
    so, iwann hat die variable jetzt nen anderen wert, und wir wollen die alte, und dazu is dann einfach nur var_save<T>::get(T &var);
    sagt mir auch mal ob ihrs nützlich findet ^^

    blackshampoo.bl.ohost.de/var_save.zip

    danke

    (sry für den schlechten beitrag ^-^")
  • Ehrlich gesagt, habe ich grad deinen Beitrag drei mal gelesen und mir ist immer noch nicht ganz klar, was du da vorhast.

    Wenn ich das richtig verstanden habe, dann geht es dir darum, keine zusätzlichen Variablen anzulegen, um Werte zwischen zu speichern - Ist das richtig?
    Dann stelle ich mir nämlich die Frage: Warum erstellst du eine Klasse, die ebenso Speicher für diesen Wert reserviert?
    Dann sollte dir als Programmierer immer klar sein, wozu eine Variable da ist. Willkürlich welche zu erstellen bricht dir früher oder später das Genick ;)
    Aus diesem Grund gibt es eigentlich keine Variablen, die du zwischenspeichern musst. Schließlich gibt es Gültigkeitsbereiche, die die Lebensdauer von Variablen einschränken.
    Davon ab sehe ich gerade, dass du ein Array mit 256 Elementen erstellst. Da erstell ich mir lieber einen Dummy um was zwischen zu speichern ;)
    Naja, aber falls es doch nötig ist 256 Variablen oder mehr (oder weniger??) zu speichern, warum gibst du dann eine statische Größe an? Versuche es doch mit einer dynamischen Liste oder Array. Oder ging es dir etwas um die Laufzeit?



    Was den Code angeht:
    An sich ganz schön und jeder hat einen eigenen Styl, dennoch kann ich dir vllt. ein paar Tipps auf die Wege geben:

    In der Main Funktion fragst du die Variable swt ab. Mach das lieber mit einer Switch-Anweisung. So lässt sich das ganze besser strukturieren und leichter erweitern.

    Wozu die for-Schleife? Du kannst genauso eine Eingabe (kbhit(), getch() oder getchar()) des Benutzers entgegen nehmen um somit das Programm ordnungsgemäß beenden.

    In C++ solltest du defines ausschließlich für Makros nutzen. Wenn du Values definieren willst, nutze besser Konstanten. U.A. aus folgendem Grund:

    Quellcode

    1. const int NUMBER = -42;
    2. int main()
    3. {
    4. int x = -NUMBER;
    5. }


    Desweiteren wegen der Gültigkeitsbereiche. Mit const kannst du Konstanten an Stellen definieren, die auch ausschließlich dort gebraucht werden. (Und sobald eine Variable verfällt, ist der Speicher wieder freigegeben und das schont dein System).


    Desweiteren frage ich mich gerade, warum du die Werte als Zeiger übergibst. Warum nicht als Value?
    Was die Funktion set() angeht, so würde ich eher den gesuchten Wert returnen, statt in einen Zeiger zu schreiben. (Zwar sind Zeiger was echt schönes [Und bei char-Arrays völlig notwendig], persönlich rate ich aber immer von ihnen ab. Zwar sinkt die Laufzeit, aber die Fehlerrate steigt umso höher.)



    Naja, das zum Code. Wirklich verstanden habe ich das Programm aber immer noch nicht ;)
  • okay, der beitrag oben war wirklich übel ._.
    nein

    also das #define is nur ne übergangslösung, bis ich das mit listen mach (wollte das eigentlich statisch und dynamisch machen, also zwei klassen)
    wegen den zeigern:
    ich speicher ja nicht nur den wert, sondern auch die adresse. also kann ich jeder beliebige in der klasse registrierte variable einfach mit set(&var) und get(&var) holen, ohne weiter drüber nachzudenken
    und nen anwendungsgebiet hab ich sogar schon (sorry, aber wenn ich von was fasziniert bin, dann sind es adressen und zeiger XD und wenn ich mich mal drin festgebissen hab, dann seh ich was, und dann muss ich was dazu machen ^_^")
    stell dir vor, du hast nen ablauf, der immer wieder wiederholt wird, und dazu müssen einige variablen zurückgesetzt werden, aber ab und zu nicht alle...

    also alle drin adden

    dann
    //start
    get_all();
    {
    //ablauf...
    if(soundso)
    {
    set(&bla);
    }
    }
    //nochmal!

    (noma sry, ich bin schlecht im erklären...)
    also es is net grad ram-freundlich, aber einfach zu handhaben und is denk ich ne arbeitserleichterung...
    aber danke schonmal für die kritik ^^
    und das du dir überhaupt zeitgenommen hast meinen (wirren) code anzusehen XD