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