Когда использоватьshared_ptr, а когда необработанные указатели?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Когда использоватьshared_ptr, а когда необработанные указатели?

Сообщение Anonymous »

Код: Выделить всё

class B;

class A
{
public:
A ()
: m_b(new B())
{
}

shared_ptr GimmeB ()
{
return m_b;
}

private:
shared_ptr m_b;
};
Предположим, B — это класс, который семантически не должен существовать вне времени жизни A, т. е. для B нет абсолютно никакого смысла существовать отдельно. Должен ли GimmeB возвращать общий_ptr или B*?

В целом, является ли хорошей практикой полностью избегать использования необработанных указателей в коде C++ вместо интеллектуальных указателей?

Я придерживаюсь мнения, что Shared_ptr< /code> следует использовать только при явной передаче или совместном использовании прав собственности, что, я думаю, довольно редко, за исключением случаев, когда функция выделяет некоторую память, заполняет ее некоторыми данными и возвращает ее, и между вызывающей стороной существует понимание и вызываемый абонент, что первый теперь «ответственен» за эти данные.

Подробнее здесь: https://stackoverflow.com/questions/765 ... w-pointers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»