MyTetra Share
Делитесь знаниями!
Что такое explicitly shared объекты и implicitly shared и чем они отличаются (краткое объяснение)
Время создания: 19.03.2016 10:47
Автор: Xintrea
Текстовые метки: C++, объект, explicitly, implicitly, shared, совместное использование данных, разделяемые ресурсы
Раздел: Компьютер - Программирование - Язык C++ (Си++)
Запись: xintrea/mytetra_syncro/master/base/1458373634nx06pitouj/text.html на raw.github.com

Есть такое понятие - explicitly shared (явное совместное использование данных). Оно означает, что созданные копии объекта (с помощью конструктора копирования или оператором присваивания) ссылаются на одни и те же данные. Когда данные модифицируются с помощью одного объекта, изменения будут видны в другом.


Не следует путать явное совместное использование данных (explicitly shared) с неявным совместным использованием данных, именуемое в английской технической литературе как implicitly shared. Неявное совместное использование данных лишено вышеописанной проблемы, так как в своей основе имеет механизм "копирование при изменении" (copy-on-write).

Избежать проблемы совместного использования данных для объектов типа explicitly shared можно путем полного копирования объекта. Обычно такой метод называется copy() или clone().


Например, в Qt для создания глубокой копии объекта класса QDomNode используется метод cloneNode().


Так же в этом разделе:
 
MyTetra Share v.0.58
Яндекс индекс цитирования