Boost::shared_ptr boost::mutex и конструктор копированияC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Boost::shared_ptr boost::mutex и конструктор копирования

Сообщение Anonymous »

Мне нужно защитить доступ к структуре данных в моем классе. Поскольку у меня не может быть мьютекса (потому что я не могу его скопировать), я подумываю о том, чтобы использоватьshared_ptr и оставить там мьютекс. Вот пример кода моей идеи:

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

class Sample {
typedef boost::lock_guard AcquireLock;
boost::shared_ptr mutt;

public:
Sample() : mutt(new boost::mutex) {}

void Method()
{
AcquireLock lock(*mutt);

//do some work here
}
};
У меня следующие вопросы:
  • Это плохая практика использовать мьютекс таким образом (как член класса, черезshared_ptr)?
    Должен ли я иметь конструктор копирования для этого класса, поскольку у него есть память, выделенная в куче черезshared_ptr?
РЕДАКТИРОВАТЬ: Возможно, мне нужно дать немного больше деталей:
Я создам этот объект только один раз и сохраню его в std: :вектор. Мне не нужно делать его копии, а если вектору нужно делать копии, я не хочу иметь разные мьютексы для каждой копии. Вот почему я думаю, что конструктор копирования мне подойдет.

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

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

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

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

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

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

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