exponenta event banner

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

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