[C++] Klasy pochodne - zapis do / odczyt z pliku

0

Witam,

mam:

  • abstrakcyjną klase podstawową A z wirtualnymi funkcjami do zapisu i odczytu z pliku,
  • kilka klas pochodnych A_1, A_2, A_3..,
  • wektor: vector<A *>, w którym trzymam klasy pochodne.

Chcę zapisywać i odczytywać dane z pliku. O ile polimorfizm załatwia wywołanie funkcji zapisu na plik, to z odczytywaniem nie jest tak łatwo. Nie wiadomo jaki obiekt utworzyć, żeby wywołać później funkcję odczytu.
Pomyślałem, że przy zapisie będę zapisywał info o typie obiektu i przy odczycie najpierw odczytam sobie jaki to typ, utworzę odpowiednią klasę A_1 / A_2 /.. /.. i wywołam jej funkcję czytającą.

Co sądzicie o pomyśle?
Pewnie jest coś o czymś nie wiem..

0

Co sądzicie o pomyśle?

Pomysł Ok. Zresztą nie sądzę, żeby istniał jakiś inny sposób realizacji tego typu zadania.

0

standardowe rozwiązanie problemu eksternalizacji i internalizacji (zapisu i odczytu danych z klas).

0

Jeśli dane w pliku sa uporządkowane tak, ze jestes w stanie sam rozdzielic ten plik na kolejne sekcje z opisem kolejnych obiektow, to ja bym to zrobil tak:

  1. Odczytujesz fragment pliku opisujacy pojedynczy obiekt
  2. Uzywasz jakiejs fabryki (wzorzec projektowy) do tworzenia obiektow typu "pochodna od A" na podstawie danych, cos w stylu:
MojaFabrykaObiektowTypuA fabryka;
A obiekt = fabryka.stworzObiektNaPodstawieDanychZPliku(dane_wczytane_z_pliku);
// a teraz dodawanie obiektu do wektora
0
MarekR22 napisał(a)

standardowe rozwiązanie problemu eksternalizacji i internalizacji (zapisu i odczytu danych z klas).

czyli...

@[losowa nazwa]
Wydaje mi się, że to raczej nie do zrobienia, jeśli klasy pochodne mają różną ilość i typ parametrów zapisanych w pliku. Poza tym nie chcę robić odczytu danych poza klasą pochodną.

1 użytkowników online, w tym zalogowanych: 0, gości: 1