Код: Выделить всё
class B;
class A
{
public:
A ()
: m_b(new B())
{
}
shared_ptr GimmeB ()
{
return m_b;
}
private:
shared_ptr m_b;
};
< /code>
Допустим, B - это класс, который семантически не должен существовать вне времени жизни A, то есть, это абсолютно смысл для B, который сам сам по себе. [b] Должен ли GIMMEB
В целом, хорошей практикой является полностью избегать использования необработанных указателей в коде C ++, а не умных указателей? shared_ptr следует использовать только при явном передаче или обмене владением, что, я думаю, довольно редко вне случае>
Подробнее здесь: https://stackoverflow.com/questions/765 ... w-pointers