RAII && try/finalize
От: yaser Украина  
Дата: 13.02.16 19:50
Оценка:
Добрый вечер.

Есть некий класс:
class TSomeObject {
private:
  int * data = nullptr;
public:
  .......
  void play(int* external_data) {
     data = external_data;
     ....
     some_action();
     ....
     data = nullptr;
  }
  void some_action() {
     ....
     throw std::exception("very bad code");
  }  
}

Какой-то внешний код вызывает метод play, передавая указатель на внешние данные. чтобы не передавать по всем методам класса эти данные, приняли решение их сохранить на уровне класса.
Хотелось бы чтобы после завершения метода play data был равен nullptr. Понимаю что можно сделать try {... data = nullptr; } catch (...){data = nullptr; throw; }, но мне кажется это не очень правильный патерн в рамках идеологии RAII. Хотелось бы понять какие патерны вы используете в такой ситуации. Заранее ответивщим спасибо.
Отредактировано 14.02.2016 12:13 Кодт . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.