Чтобы разработать свой код, я рисую диаграмму классов UML. У меня есть несколько общих объектов, и мне интересно, как это должно быть нарисовано, поскольку право собственности на эти объекты действительно совместное. Чтобы быть более конкретным, здесь приведен пример С++ того, что происходит:
class A
{
public:
A(){
std::shared_ptr<CSharedObj> sharedObj = std::make_shared<CSharedObj>;
mB = B(sharedObj);
}
private:
B mB;
};
class B
{
public:
B(std::shared_ptr<CSharedObj>);
private:
std::shared_ptr<CSharedObj> mSharedObj;
};
class CSharedObj
{
public:
CSharedObj();
};
Как представить на диаграмме классов отношения между этими тремя классами?
B
нужно совместное владениеCSharedObj
? Время жизниB
такое же, как и время жизниA
, поэтому он может безопасно иметь невладеющий указатель наCSharedObj
, не так ли? - person Chris Drew   schedule 04.11.2016B
, это имеет больше смысла, и я не заметил, чтоA
не хранит общий объект. - person Chris Drew   schedule 04.11.2016A
иB
. - person qwerty_so   schedule 06.11.2016