Конструкторы и деструкторы: Несколько вещей, которые вы, возможно, захотите узнать

RU / День 3 / 12:30 / Зал 2

Кажется, что в C++ нет ничего проще, чем конструктор и деструктор. Но и здесь есть несколько интересных вещей, которые могут сделать вашу жизнь лучше, если вы знаете о них и держите их в уме, когда пишете код.

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

Например, какая разница между приватно объявленным и deleted-конструктором? (Спойлер: никакой.)

Также обсудим:

  • правила 0/3/5 (куда без них);
  • constexpr-конструкторы;
  • explicit и strong typing;
  • копирование/перемещение и эквивалентность;
  • деструкторы теперь noexcept по умолчанию и когда деструкторы всё же могут бросать исключения;
  • виртуальные деструкторы и полиморфизм;
  • и ещё несколько вещей.

Почему этот доклад в программе

Чем хорош спикер: Павел — один из тех спикеров, кто любит исследовать возможности сделать код лучше и облегчить себе работу в будущем.

Чем хороша тема: Для эффективного использования С++ программисту необходимо быть знакомыми с множеством идиом и стандартных соглашений, которые не всегда контролируются компилятором, и нарушение которых может привести к логическим ошибкам. Тема конструкторов и деструкторов является одной из базовых при использовании классов в C++ и содержит внутри себя целую серию нюансов, которые важно знать каждому C++ разработчику.

Кому будет полезно: Доклад будет полезен тем, кто хочет понимать разные стороны создания и уничтожения объектов в C++. Эти знания могут пригодиться для прохождения интервью, поскольку эта тема содержит в себе множество подводных камней, которые любят обсуждать на собеседованиях.

Почему здесь и сейчас: Данные вопросы были актуальны и останутся актуальными, пока парадигма кодирования на C++ кардинально не изменится. Свидетельством актуальности таких на первый взгляд тривиальных вопросов может служить, например, появление трека Back to Basics на международных конференциях. Важно отметить, что с выходом новых стандартов меняются и подходы к описанию конструкторов и деструкторов, и за этими изменениями стоит следить.