Difference between revisions of "Test"
(2 intermediate revisions by the same user not shown) | |||
Line 24: | Line 24: | ||
надо написать функцию Saveme класса B -- которая-бы сохраняла весь класс B на диске, нельзя пользываться сериализацией. Надо принять во внимание что есть некоторые виртуальные функции -- ActA и ActB, следовательно надо сохранить и таблицу виртуальных функций класса B, принимая во внимания то что и класс А имеет виртуальные функции. | надо написать функцию Saveme класса B -- которая-бы сохраняла весь класс B на диске, нельзя пользываться сериализацией. Надо принять во внимание что есть некоторые виртуальные функции -- ActA и ActB, следовательно надо сохранить и таблицу виртуальных функций класса B, принимая во внимания то что и класс А имеет виртуальные функции. | ||
+ | |||
+ | Естественно нельзя пользываться функциями и классами MFC (CDocument, CRecordSet, CObject и прочими) -- тоесть код должен компилироваться и исполнятся в не зависимости от типа операционной системы. Для вывода и ввода использывать cout/cin | ||
+ | |||
+ | что сохранять? -- ВСЁ нужное для продолжения использывания класса после его загрузки -- | ||
+ | |||
+ | тоесть -- таблицу виртуальных функций, их использывание, их стек, их heap,их коды,их состояние, стек и heap самого класса, LTS. | ||
+ | |||
надо так-же написать функцию последующей загрузки класса B | надо так-же написать функцию последующей загрузки класса B |
Latest revision as of 21:29, 21 March 2007
Есть пара классов:
class CClassA { public: CClassA(){m_vala=0}; public: int GetA(){return m_vala}; void SetA(int val) {m_vala=val); virtual void ActA(); protected: int m_vala; }
class CClassB { protected: CClassA * m_ca; public: CClassB(){m_ca=new CClassA();} virtual void ActB(); void Saveme(); }
надо написать функцию Saveme класса B -- которая-бы сохраняла весь класс B на диске, нельзя пользываться сериализацией. Надо принять во внимание что есть некоторые виртуальные функции -- ActA и ActB, следовательно надо сохранить и таблицу виртуальных функций класса B, принимая во внимания то что и класс А имеет виртуальные функции.
Естественно нельзя пользываться функциями и классами MFC (CDocument, CRecordSet, CObject и прочими) -- тоесть код должен компилироваться и исполнятся в не зависимости от типа операционной системы. Для вывода и ввода использывать cout/cin
что сохранять? -- ВСЁ нужное для продолжения использывания класса после его загрузки --
тоесть -- таблицу виртуальных функций, их использывание, их стек, их heap,их коды,их состояние, стек и heap самого класса, LTS.
надо так-же написать функцию последующей загрузки класса B
на работу 3-4 часа.
код должен быть рабочим -- написан на VC6 или VC2005. Прислать весь проект ко мне на почту