Предположим, что у нас есть три класса: A, B, C. Оба A и B владеют указателем на класс C. Не должно быть так, что два экземпляра класса A имеют один и тот же указатель на объект C , но в то же время объект C свободен для указания экземпляром класса B.уникальный указатель внутри класса
Есть ли способ реализовать это в C++ (11)?
====== ====== EDIT
Итак, давайте более подробно. Когда я создаю объекты C, я добавляю их указатели в контейнер в объекте B. Объекты A могут иметь или не указатель на C. Важно то, что не более одного A указывает на тот же C, который может на самом деле произойти из-за ошибки пользователя. Как только A указывает на C априори, он должен продолжать указывать, что C для всей его жизни.
Я бы пошел за уникальными указателями, но мне нужны копии их в контейнер B!
Есть много разных способов. Меняются ли указатели? Они назначаются при строительстве? Создается ли 'C' каждый раз, когда создается' A'? Что должно произойти, когда код пытается назначить один и тот же указатель на два 'A'? –
Да, но это не тривиально. – metal
'B' может просто использовать обычный указатель. Этот дизайн сомнительный, хотя он не похож на уникальную собственность. – Pubby