Тип не-POD должен быть определен как класс
Тип не-POD должен быть определен как класс.
Тип POD (простые старые данные) может быть заменен кодом C в двоичной форме и может быть безопасно скопирован с помощью std::memcpy функция. Скалярные типы, структуры и объединения в стиле C и массивы этих типов являются примерами типов POD. Однако язык C++ также позволяет создавать структуры и объединения, не являющиеся типами POD. Такие структуры и объединения могут предоставлять пользовательские конструкторы, иметь нестатические элементы данных с частным или защищенным управлением доступом, иметь интерфейс и реализовывать инвариант.
Разработчик программного обеспечения обычно ожидает, что объектно-ориентированные концепции, такие как инкапсуляция, будут реализованы с использованием классов. Кроме того, спецификатор класса по умолчанию вынуждает тип обеспечивать управление частным доступом для всех его членов и естественно подходит для реализации инкапсулированных типов. Таким образом, для создания легко читаемого и ремонтируемого кода определите тип, не являющийся типом POD, как класс вместо структуры или объединения.
Средство проверки помечает структуру или объединение в коде, которое не является типом POD. Это относится к структурам и объединениям, созданным с помощью шаблонов.
Упрощенное описание типа POD на языке C++ см. в предыдущем разделе. Полную спецификацию типа POD см. в справочном руководстве по C++.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Управление доступом участников |
| Категория: Консультации, Автоматизированные |