Есть такое понятие - explicitly shared (явное совместное использование данных). Оно означает, что созданные копии объекта (с помощью конструктора копирования или оператором присваивания) ссылаются на одни и те же данные. Когда данные модифицируются с помощью одного объекта, изменения будут видны в другом.
Не следует путать явное совместное использование данных (explicitly shared) с неявным совместным использованием данных, именуемое в английской технической литературе как implicitly shared. Неявное совместное использование данных лишено вышеописанной проблемы, так как в своей основе имеет механизм "копирование при изменении" (copy-on-write).
Избежать проблемы совместного использования данных для объектов типа explicitly shared можно путем полного копирования объекта. Обычно такой метод называется copy() или clone().
Например, в Qt для создания глубокой копии объекта класса QDomNode используется метод cloneNode().