Код: Выделить всё
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