Zapis obiektów klas (różnych) do pliku

0

Cześć
Mam w Programie kilka klas w hierarchii i vector obiektów klasy bazowej zawierający wszystkie obiekty tych różnych klas.
Potrzebuje zapisać te obiekty do pliku i tu mam pytanie jak to zrobić najlepiej?
Sprawdzanie typu każdego obiektu przez RTTI i konwersja do odpowiedniego stringa i to samo w drugą stronę przy odczycie jest trochę żmudne, a znowu przy zapisie do pliku binarnego trzeba podać rozmiar obiektu i tu też siłą rzeczy będą one miały różny (różna ilość pól, w każdym jakiś string z którym też może być różnie z wielkością).

Czy jest jakiś stosunkowo prosty sposób na zrobienie tego?

0

znowu przy zapisie do pliku binarnego trzeba podać rozmiar obiektu i tu też siłą rzeczy będą one miały różny

Będzie trochę więcej klepania, ale zapisuj poszczególne składowe klas z określonym harmonogramem i odczytuj dokładnie w tej samej kolejności.
Ze stringami nie ma większego kłopotu (przy zapisie konwersja na cstring - .c_str(), a odczyt std::getline()).
Przy zapisie vector'a zapisz liczbę elementów i później całą jego zawartość. Odczyt analogicznie.

Czy jest jakiś stosunkowo prosty sposób na zrobienie tego?

Zdecydować się na stały rozmiar, albo na piechotę.

3

Serializuj. Zapis bitów jest legalny tylko dla PODów.

0
kq napisał(a):

Serializuj. Zapis bitów jest legalny tylko dla PODów.

właśnie C++ ponoć standardowo nie obsługuje serializacji

spróbuje się w takim razie z tymi stringami pobawić

2

Boost.Serialization na ratunek: http://www.boost.org/doc/libs/1_61_0/libs/serialization/doc/index.html

Niestety to nie jest D, żeby mieć piękną refleksję i np. painlessjson https://code.dlang.org/packages/painlessjson w wyniku...

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