Hola, he estado tratando de pasar de C a C++, y se me ha complicado un poco esto. Antes trabajaba con estructuras y las sabía pasar a archivos binarios con fwrite y fread, pero en C++ no se pasar las clases a archivos binarios, o es acaso que las clases no se pueden pasar y solo se pasan las estructuras? despues de todo no tiene sentido enviar funciones a archivos binarios o si? Si tengo por ejemplo una clase asi:
#include <string>
class producto
{
private:
int id;
string nombre;
public:
int getId();
void setId( int _id);
string getNombre();
void setNombre( string _nombre);
}
Y la quiero guardar en un archivo binario con muchos productos, ¿Está bien hecho esto?
producto prod;
ofstream fsalida;
prod.setNombre("NombrePrueba");
prod.setId(4343434);
fsalida.open("prueba.dat", ios::out | ios::binary);
fsalida.write(reinterpret_cast<char *>(&prod), sizeof(producto));
fsalida.close();
Y esto lo hice para leerla, pero me da problemas de memoria creo.
producto prod;
ifstream fentrada;
fentrada.open("prueba.dat", ios::in | ios::binary);
fentrada.read(reinterpret_cast<char *>(&prod), sizeof(producto));
while (!fentrada.eof())
{
cout << prod.getId() << " ";
<< prod.getNombre() << endl;
fentrada.read(reinterpret_cast<char *>(&prod), sizeof(producto));
}
//fentrada.close();
return;