Правило трёх (C++ программирование)

Правило трёх (C++ программирование)

Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка») — правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода[1]:

Эти три метода являются особыми членами-функциями, автоматически создаваемыми компилятором в случае отсутствия их явного объявления программистом. Если один из них должен быть определен программистом, то это означает, что версия, сгенерированная компилятором, не удовлетворяет потребностям класса в одном случае и, вероятно, не удовлетворит в остальных случаях.

Поправка к этому правилу заключается в том, что если используется RAII (от англ. Resource Acquisition Is Initialization), то используемый деструктор может остаться неопределённым (иногда упоминается как «Закон Большой Двойки»)[2].

Так как неявно определённые конструкторы и операторы присваивания просто копируют все члены-данные класса[3], определение явных конструкторов копирования и операторов присваивания копированием необходимо в случаях, когда класс инкапсулирует сложные структуры данных или может поддерживать эксклюзивный доступ к ресурсам.

Ссылки

  1. Stroustrup Bjarne The C++ Programming Language. — 3. — Addison-Wesley. — P. 283-4. — ISBN 978-0201700732
  2. Karlsson, Bjorn; Wilson, Matthew The Law of the Big Two. The C++ Source. Artima (1 октября 2004). Архивировано из первоисточника 17 марта 2012. Проверено 22 января 2008.
  3. The C++ Programming Language. — P. 271.



Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "Правило трёх (C++ программирование)" в других словарях:

  • Правило стандартизации стиля — правило, согласно которому в ситуации, когда существуют несколько способов сделать нечто, следует остановиться на одном способе и придерживаться его всегда. См. также: Программирование Финансовый словарь Финам …   Финансовый словарь

  • Правило трех (C++ программирование) — Правило трёх (также известное как «Закон Большой Тройки» или «Большая Тройка»)  правило в C++, гласящее, что если класс или структура определяет один из следующих методов, то они должны явным образом определить все три метода[1]: Деструктор… …   Википедия

  • Правило ограничения домена — (англ. same origin policy) это важная концепция безопасности для некоторых языков программирования на стороне клиента, таких как JavaScript. Политика разрешает сценариям, находящимся на страницах одного сайта, доступ к методам и свойствам… …   Википедия

  • ПРОГРАММИРОВАНИЕ ТЕОРЕТИЧЕСКОЕ — математическая дисциплина, изучающая математич. абстракции программ, трактуемых как объекты, выраженные на формальном языке, обладающие определенной информационной и логич. структурой и подлежащие исполнению на автоматич. устройствах. П. т.… …   Математическая энциклопедия

  • ПРОГРАММИРОВАНИЕ ФИНАНСОВОЕ — (англ. financial programming) – применение программно целевого метода при составлении государственного бюджета, смет расходов и доходов других звеньев финансовой системы. П.ф. включает: прогнозирование общих гос. расходов и их осн. групп;… …   Финансово-кредитный энциклопедический словарь

  • Программирование в ограничениях — Парадигмы программирования Агентно ориентированная Компонентно ориентированная Конкатенативная Декларативная (контрастирует с Императивной) Ограничениями Функциональная Потоком данных Таблично ориентированная (электронные таблицы) Реактивная …   Википедия

  • Программирование —         процесс составления упорядоченной последовательности действий (программы (См. Программа)) для ЭВМ; научная дисциплина, изучающая программы для ЭВМ и способы их составления, проверки и улучшения.          Каждая ЭВМ является автоматом,… …   Большая советская энциклопедия

  • ПРОГРАММИРОВАНИЕ — 1) процесс составления программы, плана действий; 2) дисциплина, изучающая методы и приемы составления программ. С определенной долей условности П. как дисциплина делится на программирование теоретическое, изучающее математич. абстракции программ …   Математическая энциклопедия

  • Программирование сетевых задач — В области компьютеризации понятие программирования сетевых задач или иначе называемого сетевого программирования (англ. network programming), довольно сильно схожего с понятиями программирование сокетов и клиент серверное программирование,… …   Википедия

  • Программирование расследования —    разработка программ (алгоритмов) действий следователя, как правило, на начальном этапе расследования. Содержит перечень типичных необходимых следственных действий и оперативно розыскных мероприятий в зависимости от вида преступления и с учетом …   Криминалистическая энциклопедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»