- Правило трёх (C++ программирование)
-
Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка») — правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода[1]:
Эти три метода являются особыми членами-функциями, автоматически создаваемыми компилятором в случае отсутствия их явного объявления программистом. Если один из них должен быть определен программистом, то это означает, что версия, сгенерированная компилятором, не удовлетворяет потребностям класса в одном случае и, вероятно, не удовлетворит в остальных случаях.
Поправка к этому правилу заключается в том, что если используется RAII (от англ. Resource Acquisition Is Initialization), то используемый деструктор может остаться неопределённым (иногда упоминается как «Закон Большой Двойки»)[2].
Так как неявно определённые конструкторы и операторы присваивания просто копируют все члены-данные класса[3], определение явных конструкторов копирования и операторов присваивания копированием необходимо в случаях, когда класс инкапсулирует сложные структуры данных или может поддерживать эксклюзивный доступ к ресурсам.
Ссылки
- ↑ Stroustrup Bjarne The C++ Programming Language. — 3. — Addison-Wesley. — P. 283-4. — ISBN 978-0201700732
- ↑ Karlsson, Bjorn; Wilson, Matthew The Law of the Big Two. The C++ Source. Artima (1 октября 2004). Архивировано из первоисточника 17 марта 2012. Проверено 22 января 2008.
- ↑ The C++ Programming Language. — P. 271.
Категория:- C++
Wikimedia Foundation. 2010.