Witam,
Czy może mi ktoś wyjaśnić, dlaczego poniższy kod serializujący obiekt klasy Encja do pliku nie działa?
Z tego co wiem, działa to na VC++ lecz pod Dev-C++ już nie.
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Encja
{
public:
Encja() : _id(0)
{ };
Encja(long id) : _id(id)
{ };
long ZwrocId() const
{
return _id;
};
void UstawNazwa(string nazwa)
{
_nazwa = nazwa;
}
string& ZwrocNazwa()
{
return _nazwa;
}
private:
const long _id;
string _nazwa;
};
int main(int argc, char *argv[])
{
string nazwa = "Nazwa";
bool zapis = false;
if (zapis)
{
Encja e(1);
e.UstawNazwa(nazwa);
ofstream plik("Baza.db", ios::binary);
plik.write((char*)&e, sizeof(Encja));
cout << e.ZwrocNazwa() << endl;
}
else
{
Encja e;
ifstream plik("Baza.db", ios::binary);
plik.read((char*)&e, sizeof(Encja));
cout << e.ZwrocNazwa() << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}