Инициализация заново создаваемого элемента данных на основе существующего элемента
В C++ запрещается наличие в одном адресном пространстве двух одноименных классов с разными схемами организации памяти. Однако в данном случае оказывается необходимым именно это, нужен доступ к старым данным при создании нового объекта. Имеется несколько способов достижения желаемого результата, один из которых используется в инструментальном средстве эволюции схем ObjectStore и состоит из трех шагов.
- использовать объектный курсор;
- производить навигацию по специализированным структурам данных приложения;
- выполнять это действие инкрементно, при первом обновлении объекта;
- объединить действие с шагом 1 процесса эволюции путем использования функции преобразования, которая будет автоматически вызываться в процессе эволюции схемы для каждого встреченного кандидата на эволюцию.