Cześć!
Pisząc pewien program natrafiłem na problem dotyczący zapisywania objektów w pliku binarnym. Mam zapisać objekt klasy TURN_BOARD, w którym znajduje się 64(plansza 8x8) wskaźników do objektów polimorficznej klasy Pole_TURN, w_których znajdują się po jednym wskaźniku do objektu klasy TURN_Entity.
W jaki sposób mam zapisać do pliku binarnego objekt klasy TURN_BOARD i jak mam go odczytywać z tego pliku?
Za wszystkie odpowiedzi serdeczne dzięki!
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
enum Pola_TURN{Empty,Forest,Water,Mountain,Ground,Fire};
class TURN_ENTITY
{
char symbol;
int x;
int y;
int quantity_Move;
int hp;
int force_attack;
bool team;
public:
TURN_ENTITY(int wx,int wy,char sym,int qm,int hpoints,int force,bool t);
TURN_ENTITY(const TURN_ENTITY *w_something);
~TURN_ENTITY();
void DELETEENTITY(TURN_ENTITY *w_cos);
void show_char();
TURN_ENTITY *w_next;
};
class Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
virtual void show_view(int ktory)=0;
virtual void set_Entity(TURN_ENTITY* w_entity)=0;
virtual Pola_TURN PodajTyp()=0;
virtual void DeleteEntity()=0;
virtual TURN_ENTITY * Podaj()=0;
};
class Empty_TURN //klasa polimorficzna
:public Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
void show_view(int ktory);
void set_Entity(TURN_ENTITY* w_entity);
void DeleteEntity();
TURN_ENTITY * Podaj();
Pola_TURN PodajTyp();
Empty_TURN();
};
class Forest_TURN //klasa polimorficzna
:public Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
void show_view(int ktory);
void set_Entity(TURN_ENTITY* w_entity);
void DeleteEntity();
TURN_ENTITY * Podaj();
Pola_TURN PodajTyp();
Forest_TURN();
~Forest_TURN();
};
class Water_TURN //klasa polimorficzna
:public Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
void show_view(int ktory);
void set_Entity(TURN_ENTITY* w_entity);
void DeleteEntity();
TURN_ENTITY * Podaj();
Pola_TURN PodajTyp();
Water_TURN();
~Water_TURN();
};
class Mountain_TURN //klasa polimorficzna
:public Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
void show_view(int ktory);
void set_Entity(TURN_ENTITY* w_entity);
void DeleteEntity();
TURN_ENTITY * Podaj();
Pola_TURN PodajTyp();
Mountain_TURN();
~Mountain_TURN();
};
class Fire_TURN //klasa polimorficzna
:public Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
void show_view(int ktory);
void set_Entity(TURN_ENTITY* w_entity);
void DeleteEntity();
TURN_ENTITY * Podaj();
Pola_TURN PodajTyp();
Fire_TURN();
~Fire_TURN();
};
class Ground_TURN //klasa polimorficzna
:public Pole_TURN
{
TURN_ENTITY *w_something;
Pola_TURN Typ;
public:
void show_view(int ktory);
void set_Entity(TURN_ENTITY* w_entity);
void DeleteEntity();
TURN_ENTITY * Podaj();
Pola_TURN PodajTyp();
Ground_TURN();
~Ground_TURN();
};
class TURN_BOARD //objekt tej klasy chce zapisać
{ //w pliku
Pole_TURN *Pola[8][8];
public:
TURN_BOARD(string level);
~TURN_BOARD();
Pola_TURN Pobierz(int x,int y);
void Set(int x,int y,char character,int qm,int hp,int fa,bool t);
void Delete(int x,int y);
void Copy(int zx,int zy,int dox,int doy);
void SetPole(int x,int y,Pola_TURN What);
void schowEntities();
void view();
};