Исключение: нарушение доступа для чтения
void Trainer::write()
{
ofstream file;
file.open("trainers.bin", ios::trunc | ios::binary);
int len = trainers.size();
file.write(reinterpret_cast<char*>(&len), sizeof(len));
for (int i=0, len=::trainers.size(); i<len;i++)
file.write(reinterpret_cast<char*>(&trainers[i]), sizeof(trainers[i]));
}
void Trainer::read()
{
ifstream file;
file.open("trainers.bin", ios::binary);
if (!file.is_open()) return;
int len;
file.read(reinterpret_cast<char*>(&len), sizeof(len));
Trainer tmp;
for (int i = 0; i < len && file.good(); i++)
{
file.read(reinterpret_cast<char*>(&tmp), sizeof(tmp));
//::trainers.push_back(tmp);
}
//cout<< tmp.height <<endl;
file.close();
}
При вызове функции read всё считывается правильно, но в деструкторе Trauber вылетает. ::trainer это vector<Trainer>
Класс Trainer
class Trainer
{
public:
Trainer() {}
Trainer(float weight, float height, float price, string name, string type) : weight(weight), height(height), price(price), name(name), type(type) {}
~Trainer() {}
string Name() { return name; }
static void write();
static void read();
private:
float weight, height, price;
string name, type;
};
