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

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