Здравствуйте, night beast, Вы писали:
Вообще, раз уж на то пошло и вся фишка тут в копировании, чтобы копировать объект динамического размера в С++ используется такой интерфейсик:
struct ICloneable
{
ICloneable* Clone() = 0;
}
class A : ICloneable
{...};
Дальше думаю понятно. Имея указатель на базовый класс всегда можно сделать полную копию его истинного рантайм класса.
Конечно тут потребуется немного макросомагии, чтобы вставлять обязательный boilerplate код в каждый из классов наследников.