Эти дефекты связаны с объектно-ориентированным аспектом программирования 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 классифицируются в такие группы, как поток данных, параллелизм, численный и так далее.