Если поведение пользовательской специальной функции членства будет идентично неявно заданной специальной функции членства, то это должно быть задано "=default" или оставлено неопределенным
Если поведение пользовательской специальной функции членства будет идентично неявно заданной специальной функции членства, то это должно быть задано "=default" или оставлено неопределенным.
Компиляторы неявно задают специальные функции членства, если эти функции объявляются как =default
или оставленный неопределенный. Эти неявно заданные функции сопоставимы, безошибочны, и не требуют обслуживания. Если неявно заданные специальные функции членства достаточны, то заменяющий их на пользовательские функции делает код подверженным ошибкам и более твердым обеспечить. Если класс не управляет ресурсами как необработанный указатель или дескриптор файла POSIX, неявное определение специальных функций членства может быть достаточным. Постарайтесь не задавать специальные функции членства, когда неявные определения будут достаточны.
Конструкция по умолчанию const
объекты могут вызвать отказ компиляции, если нестатические элементы данных не инициализируются во время определения. Лучшая практика должна инициализировать нестатические элементы данных в определении класса. В качестве альтернативы инициализируйте const
экземпляр при помощи пустого списка инициализаторов. Эти методы позволяют конструктору по умолчанию правильно создать const
экземпляры класса.
Polyspace® повышает средство проверки, если пользовательские специальные функции членства вашего класса совпадают с неявно заданными специальными функциями членства.
Неявно заданный конструктор по умолчанию класса имеет пустое тело, пустой список параметров и пустой список инициализаторов. Неявно заданные деструкторы имеют пустое тело. Другие неявно заданные специальные функции членства копируют или перемещают базовые классы и нестатические элементы данных при помощи списка инициализаторов. Эти неявные специальные функции не выполняют глубокую копию и не перемещают данные, сопоставленные с указателем. Эти функции копируют или элементы данных перемещения непосредственно и используют связанного конструктора при копировании или перемещении объекта типа класса. Порядок инициализации в этих специальных функциях членства совпадает с порядком объявления во входном объекте. Для получения дополнительной информации о том, как неявно заданная специальная функция членства ведет себя, см.:
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: Специальные функции членства |
Категория: необходимый, автоматизированный |