Эти дефекты связаны с объектно-ориентированным аспектом программирования C++. Дефекты выделяют проблемы конструкции класса или проблемы в иерархии наследования. Дефекты включают в себя:
Элемент данных не инициализирован или неправильно инициализирован в конструкторе
Неправильное переопределение методов базового класса
Разрыв инкапсуляции данных
*this not returned in copy assignment operator | operator= метод не возвращает указатель на текущий объект |
Base class assignment operator not called | Оператор копирования назначения не вызывает операторы копирования назначения базовых подобъектов |
Base class destructor not virtual | Класс не может вести себя полиморфно при удалении производных объектов класса |
Bytewise operations on nontrivial class object | Представления значений могут быть неправильно инициализированы или сравнены |
Conversion or deletion of incomplete class pointer | Удаление или приведение к указателю на неполный класс |
Copy constructor or assignment operator modifying source operand | Операция копирования изменяет элемент данных исходного объекта |
Copy constructor not called in initialization list | Конструктор копирования не вызывает конструкторы копирования некоторых элементов или базовых классов |
Incompatible types prevent overriding | Метод производного класса скрывает virtual метод базового класса вместо переопределения |
Lambda used as typeid operand | typeid используется в лямбда-выражении |
Member not initialized in constructor | Конструктор не инициализирует некоторые члены класса |
Missing explicit keyword | В конструкторе или определяемом пользователем операторе преобразования отсутствует explicit спецификатор |
Missing virtual inheritance | Базовый класс наследуется виртуально и невиртуально в одной иерархии |
Object slicing | Производный объект класса передан значением функции с параметром базового класса |
Operator new not overloaded for possibly overaligned class | Выделенное хранилище может быть меньше требования к выравниванию объектов |
Partial override of overloaded virtual functions | Класс переопределяет часть унаследованных виртуальных функций с заданным именем |
Return of non const handle to encapsulated data member | Метод возвращает указатель или ссылку на внутренний элемент объекта |
Self assignment not tested in operator | Оператор копирования назначения не проверяет самоназначение |
Группы дефектов для поиска ошибок
Проверки дефектов Bug Finder подразделяются на такие группы, как поток данных, параллелизм, числовые и т. д.