У меня есть программа, которая хранит эту информацию в файле XML.Этот файл считывается и создается соответствующая объектная модель.Объектная модель имеет древовидную иерархию.Тип объекта мы назовем BigHierarchy.
Теперь в моей программе есть функция, позволяющая пользователю импортировать другой файл.Поэтому, когда он выбирает файл, который он хочет импортировать, я читаю в этом файле и создаю другой объект типа BigHierarchy для представления файла импорта.Так что теперь у меня есть оригинальный объект BigHierarchy и новый, который мне нужно объединить.Поскольку это иерархия, некоторые данные являются частными и недоступными.
Как мне объединить объект импорта с исходным, если у меня нет доступа к частным данным?Какую технику я должен использовать?Должны ли узлы листа дружить с более высокими подъемами, чтобы у меня была полная видимость сверху?Должен ли я добавить перегрузку всех листьев и оператора перегрузки плюс, чтобы я мог объединить все, или я должен создать функции-члены на каждом уровне, которые копируют все личные данные.Каждый вариант кажется грязным.Как мне сделать это наилучшим образом?