Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

1

06.01.2006, 23:03

Problem beim Laden und anschließenden Zuweisen von Variablen

Hallo,

ich hab ein Problem und komm einfach nicht weiter.

Ich speichere eine Instanz per "outstream" in einer Datei ab. Die Klasse von der die Instanz ist wurde nur zum Speichern angelegt. In ihr befinden sich nur Zeiger auf die Originalvariablen einer anderen Klasse. Diese andere Klasse besitz einen Konstruktor.

Wenn ich jetzt allerdings die Instanz aus der Datei per "ifstream" einlese und wieder den Zeigern oder den Originalvariablen zuweisen will, so klappt dies nicht. Die Varaiblen erhalten nur die Werte des Konstruktors.

Was mache ich dauernd falsch ? :headscratch:

Anonymous

unregistriert

2

06.01.2006, 23:13

Verstehe ich das richtig? Du versuchst Speicher der zur Laufzeit allokiert wurde abzuspeichern indem Du die Adresse zu diesem Speicher in einer Datei abspeicherst?

Wenn ja: Das geht nicht.

Ansonsten etwas genauer ausdrücken oder was Code zeigen und sagen was Du möchtest :)

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

3

06.01.2006, 23:23

Ich glaube, dass will ich nicht.

Ich möchte die Charakterwerte eines Spielers in einer Datei speichern (das klappt soweit).
Beim erneuten Programmstart sollen diese dann eingelesen und wieder den Variablen zugeordnet werden in denen sie vorm Speichern standen, damit sie sich im weiteren Spielverlauf wieder ändern können.

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

4

06.01.2006, 23:30

Halt,
mir kommt gerade noch eine Frage: Kann ich nur Instanzen von Klassen speichern, die keine Funktionen enthalten?

Wenn nein mache ich es viel zu umständlich (=> evt. meine Fehlerquelle)

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

5

07.01.2006, 00:03

Methoden brauchen keinen Speicher;)
Du kannst deine Klasse also direkt speichern.
Auspassen muss man aber, wenn man entweder virtuelle Methoden in der Klasse hat oder Zeiger drin sind.
Das Zeiger ungültig werden, sobalt sie den Prozess verlassen sollte ja wohl klar sein;)

Anonymous

unregistriert

6

07.01.2006, 13:52

Gut ich kann meine Klasse also mit den Funktionen speichern.

Wenn ich diese Daten aber wieder lade und eine Instnaz der geladenen Klasse erstelle wird ja wieder der Konstruktor aufgerufen und somit haben die Membervariablen nicht die Werte, die ich gespeichert habe, sondern die des Konstruktors.

Kann ich diesen Konstrutkor beim Laden irgendwie umgehen?

Wenn ja wie? ???

Sicaine

unregistriert

7

07.01.2006, 14:25

Öh ich werf mal was in den raum: Serialisieren. Das is genau das was du willlst. Dadurch gibts du einer Klasse eine in und outmethode. Beide machen nichts anderes als von nem Stream, den sie bekommen ihre Werte rein oder rauszuschreiben.

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

8

07.01.2006, 14:53

Kennt ihr vielleicht noch ein Tutorial, welches Serialisierung gut erklärt.

Was in der MSDN steht hilft mir nicht gerade weiter. :(

Falls nicht kann mir vielleicht jemand die Funktionsweise erklären !!!

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

9

07.01.2006, 15:37

ich habe einfach jeder Klasse eine save und eine Load funktion spendiert, das klappt wunderbar(natürlich nur bei den klassen wo es sinn macht)
Was es alles gibt, das ich nich brauche - Aristoteles

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

10

07.01.2006, 17:34

Hast du in diesen Klassen auch einen Kunstruktor ( der ist ja gerade mein Problem).

Könntest du mir mal deine load- bzw. save-Funktion zeigen?

Was ist ihr Vorteil gegenüber outstream/ifstream ?

spacegaier

Werbeanzeige