Класс T
должен предоставить функцию-член, которая копирует некоторые, но не все переменные-члены (минимальный пример: только одна переменная X
) от одного объекта типа T
к другому объект типа T
. Есть два возможных решения, копирование из и копирования в:Конструкция API: направление и имя функции копирования объекта в объект
class T {
some_type X;
[...]
void copy_X_from_other(const T& other) { X = other.X; }
void copy_X_to_other (T& other) const { other.X = X; }
};
Существуют ли причины предпочесть один вариант по сравнению с другими? Существуют ли путеводители, примеры лучшей практики или вообще что-либо?
Как следует назвать эту функцию? Идеальное имя было бы намного короче, чем copy_(from|to)_other
, но не оставляйте сомнений относительно направления копирования.
Извините, я вводил вас в заблуждение, написав «одно свойство», что является крайне упрощенным моей реальной проблемой. Я отредактирую вопрос, чтобы сделать это более ясным. –
Решение по-прежнему применяется, просто добавьте больше переменных-членов, не так ли? Если вы не хотите выбирать, какие переменные-члены вы хотите скопировать, это то, что вы на самом деле хотите сделать? – user1234141515134321321513