reference statt pointer



  • @devil
    danke, genau so wollte ich es haben.

    @don't
    benutze ich auch normalerweiße aber immer lassen sich diese nicht einsetzen



  • du weißt, dass man mit .c_str() einen const char* pointer vom string bekommt?



  • refer schrieb:

    @don't
    benutze ich auch normalerweiße aber immer lassen sich diese nicht einsetzen

    Dann nenn mal bitte ein Gegenbeispiel.



  • Hmm naja NICHT einsetzten lassen sie sich sehr selten ... schlecht bsw. wenn man eine Bibliothek mit schlechtem Design nutzen muss, die in C geschrieben wurde, und char* als Parameter haben will ...



  • ja ich kenne mich schon etwas aus, das mit den referenzen hat mir nur in diesem fall probleme bereitet.
    der grund warum ich nicht std::string verwende ist, dass ich eine struktur mit mehreren variablen, darunter auch mehrere strings in einer datei abspeichern muss.
    und dann später wieder aus der datei laden. die "normalen" variable wie bool, int und auch void* sind keine porblem, doch die strings sind schwierig. da es mehrere strings sind, habe ich diese über eine schleife die pointer durchzählen können und dann die strings ans ende der datei schreiben. beim laden werden die strings am ende gelesen und wieder über eine schleife in den speicher gelesen und die pointer gesetzt.
    ich bin für vorschläge offen, wie dieser gesamte speicher,-ladeprozess einfacher gestaltet werden kann.



  • refer schrieb:

    die "normalen" variable wie bool, int und auch void* sind keine porblem, doch die strings sind schwierig.

    Äh? So'n Quatsch. Wieso sollte sich ein 'void*'-Zeiger einfacher abspeichern lassen als ein String?



  • Konrad Rudolph schrieb:

    refer schrieb:

    die "normalen" variable wie bool, int und auch void* sind keine porblem, doch die strings sind schwierig.

    Äh? So'n Quatsch. Wieso sollte sich ein 'void*'-Zeiger einfacher abspeichern lassen als ein String?

    hab was verwechselt. der inhalt auf der void* zeigt lässt sich natürlich auch nicht einfacher abspeichern...
    aber hat jemand eine einfachere möglichkeit?



  • refer schrieb:

    aber hat jemand eine einfachere möglichkeit?

    Für das void* nicht, sowas verwende ich nie. Strings lassen sich ganz einfach in Streams schreiben, Du musst nur den <<-Operator für Deine Klasse entsprechend überladen.



  • Nja wenn du binär schreibst ... schreibst du erst die Größe von den Daten auf die dein void* zeigt ... dann die Daten ... beim einlesen legst du einfach nen char-Array mit der Größe an und packst dann rein was du haben willst ... beim löschen muss du dann nur aufpassen, dass du wieder nach char* castest ...



  • wenn ich das richtig verstehe also egal für was, geht nur die methode schreibe es extra raus und kopiere es extra rein. da ich einen ganzen haufen strings habe, hatte ich halt das über eine schleife geregelt. die strings in der struktur in einem vektor zusammen zu fassen und diesen vektor dann mit rauszuschreiben sollte wohl nicht funktionieren oder? die informationen über die größe des vektors usw. gehen dabei verloren oder?


Anmelden zum Antworten