Поделиться через


Собственные ресурсы объектов (RAII)

Убедитесь, что объекты, на которые собственные ресурсы.Этот принцип — также известный как «приобретения ресурсов инициализации» или «RAII».

Пример

Передайте каждый объект типа «новый» в качестве аргумента конструктору другого именованного объекта, который им владеет (почти всегда unique_ptr).

void f() {
  unique_ptr<widget> p( new widget(…) );
  my_class x( new widget() );
  …
} // automatic destruction and deallocation for both widget objects
  // automatic exception safety, as if “finally { p->dispose(); x.w.dispose(); }”

Всегда немедленно передайте любой новый ресурс для другого объекта, которому он принадлежит.

void g() {
  other_class y( OpenFile() );
  …
} // automatic closing and release for file resource
  // automatic exception safety, as if “finally { y.file.dispose(); }”

См. также

Другие ресурсы

Добро пожаловать в C++ (современные C++)

Справочник по языку C++

Справочник по стандартной библиотеки C++