Объектно-ориентированные дефекты

Дефекты, связанные с объектно-ориентированным программированием C++, такие как проблемы проекта класса или проблемы в иерархии наследования

Эти дефекты связаны с объектно-ориентированным аспектом программирования на C++. Дефекты подсвечивают проблемы проекта класса или проблемы в иерархии наследования. Дефекты включают:

  • Элемент данных, не инициализированный или неправильно инициализированный в конструкторе

  • Неправильное переопределение методов базового класса

  • Повреждение скрытия данных

Результаты Polyspace

*this not returned in copy assignment operatoroperator= метод не возвращает указатель на текущий объект
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 operandtypeid используется на лямбда-выражении
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

Средства проверки дефекта Bug Finder классифицируются в группы, такие как поток данных, параллелизм, числовой, и так далее.