Из struct в class и чтение с файла C++

261
15 марта 2017, 19:26

Всем доброго времени суток, помогите пожалуйста разобраться. Была некая структура:

typedef struct 
{
  int number;
  int numer2;
  float number3;
  TDateTime t_n;  
  float frez[4];
}; test1 

Далее была следующая запись :

test1 t[8];

Ну и код чтения из бинарного файла:

ReadFile(f_per, &t, 104, &writed_per, NULL);

Не очень мне нравилось такое решение, да и практика нужна, решил заменить структуру на класс:

class Transhipment
{
private:
    int number;
    int number2;
    float number3;
    double t_n;  
    float frez[4];
public:
    void set_Number1(int);
    int get_Number1();
    void set_Number2(int);
    int get_Number2();
    void set_Number3(float);
    float get_Number3();
    void set_Time_new(double);
    double get_Time_new();
    void set_Frez(float[4]);
    float get_Frez();
}

Далее столкнулся с проблемой чтения данных и передачей в свойства.

Transhipment per;
int test;
fileShaft->Position = (0);
fileShaft->Read(&test, 4);    //832
per.set_Number(test); 

данные я конечно получил какие нужно, но мне нужно все 832 байта раскидать автоматически а не вручную, как я себе сейчас это представляю :

 fileShaft->Position = (4); 
 fileShaft->Read(&test2, 4);    //832
 per.set_Number2(test2);

Помогите пожалуйста разобраться как правильно работать с классом. Спасибо

Answer 1

Так как у вас класс не имеет ни виртуальных функций, ни виртуального наследования, то вы можете использовать ваш класс, так же, как и предыдущую структуру.

class Transhipment
{
private:
    int number;
    int number2;
    float number3;
    double t_n;  
    float frez[4];
public:
    void set_Number1(int);
    int get_Number1();
    void set_Number2(int);
    int get_Number2();
    void set_Number3(float);
    float get_Number3();
    void set_Time_new(double);
    double get_Time_new();
    void set_Frez(float[4]);
    float get_Frez();
}
// Соответственно:
Transhipment t[8]; 
ReadFile(f_per, &t, 104, &writed_per, NULL);
READ ALSO
C++, Bluetoth Low Energy. Find device, How to connect [требует правки]

C++, Bluetoth Low Energy. Find device, How to connect [требует правки]

I have a problem, I work with Bluetooth Low EnergyI do not know how to organize a device search (Scan)

238
Задана квадратная матрица порядка N. Вычислить сумму положительных элементов, лежащих ниже побочной диагонали [требует правки]

Задана квадратная матрица порядка N. Вычислить сумму положительных элементов, лежащих ниже побочной диагонали [требует правки]

Предусмотреть два варианта ввода элементов массива: ввод с клавиатуры и ввод через генерацию случайных чиселРешение должно использовать...

267
QT qwidget изменение размера

QT qwidget изменение размера

при нажатии на кнопку вызывается функция:

291
Angular редактировать позицию списка

Angular редактировать позицию списка

У меня есть массив объектов, который приходит с сервера по гет запросу, нужно сделать 2 кнопки, 1я редактирует выбранную позицию, вторая удаляетВот...

332