В классах Derived1, Derived2 и Derived3 реализовать виртуальные функции Serialize и Deserialize. Функция Serialize должна сохранять все свои данные в буфер, указанный в параметрах функции. Deserialize должна восстанавливать данные объекта из буфера, указанного в параметрах функции.
В классе Inter добавлены две виртуальные функции, в дочерних классах должны реализовать данные функции
Ниже пример абстрактного класса и самого простого дочернего класса
class Inter {
public:
virtual void input() = 0;
virtual void output() = 0;
virtual void serialize() = 0;
virtual void deserialize() = 0;
};
#ifndef LANGUAGE
#define LANGUAGE
#include "student.h"
class ProgramLanguage :public Student {
private:
char* lang_name;
public:
virtual void input ();
virtual void output();
virtual void serialize();
virtual void deserialize();
ProgramLanguage(const ProgramLanguage&) { assert(false); }
void operator=(const ProgramLanguage&) { assert(false); }
ProgramLanguage(const char* lang_name);
virtual ~ProgramLanguage();
};
#endif // !LANGUAGE
#include "language.h"
ProgramLanguage::ProgramLanguage(const char* lang_name){
this->lang_name = new char[20];
strcpy(this->lang_name, lang_name);
}
void ProgramLanguage::input() {
}
void ProgramLanguage::output() {
Student::output();
printf("Language name: %s\n", lang_name);
}
void ProgramLanguage::serialize(Archive& ar) {
}
void ProgramLanguage::deserialize() {
}