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