Witam!
Mam za zadanie napisać program który będzie kaskadowo zapisiwał i wczytywał stan obiektu do/z pliku *.txt.
Mam klasę bazową budynek po której dziedziczy klasa szpital i po której dziedziczy szpital_psychiatryczny.
W każdej z tych klas mam przeciążone operatory >> oraz <<. Jak za pomocą tych operatorów wczytać dane z poziomu klasy szpital_psychiatryczny do klasy szpital?
0
0
W linku powyżej masz opisaną serializację danych.
5
Pod żadnym pozorem reinterpret_cast
! Jeśli chcesz rzutować wewnątrz hierarchii klas to wyłącznie static_cast
lub dynamic_cast
- ale najlepiej unikaj castowania w ogóle.
W przypadku wywołania operatora rodzica możesz to zrobić tak:
struct Budynek
{
int x;
friend istream& operator>>(istream& s, Budynek& e){
return s >> e.x;
}
};
struct Szpital : Budynek
{
int y;
friend istream& operator>>(istream& s, Szpital& e){
Budynek& parent = static_cast<Budynek&>(e);
return s >> parent >> e.y;
}
};
struct SzpitalPsychiatryczny : Szpital
{
int z;
friend istream& operator>>(istream& s, SzpitalPsychiatryczny& e){
Szpital& parent = static_cast<Szpital&>(e);
return s >> parent >> e.z;
}
};
Przy czym lepiej zapoznaj się ze wzorcem projektowym factory zamiast tego używać.