主要内容

面向对象的缺陷

与 C++ 面向对象的编程相关的缺陷,例如,类设计问题或继承层次结构中的问题

这些缺陷与 C++ 编程的面向对象的方面相关。这些缺陷会突出显示类设计问题或继承层次结构中的问题。这些缺陷包括:

  • 构造函数中的数据成员未初始化或初始化不正确

  • 错误地覆盖基类方法

  • 数据封装损坏

Polyspace 结果

拷贝赋值运算符中未返回 *thisoperator= method does not return a pointer to the current object
未调用基类赋值运算符Copy assignment operator does not call copy assignment operators of base subobjects
基类析构函数不是虚函数Class cannot behave polymorphically for deletion of derived class objects
对非平凡类对象执行字节运算Value representations may be improperly initialized or compared
转换或删除不完整的类指针You delete or cast to a pointer to an incomplete class
修改源操作数的拷贝构造函数或赋值运算符Copy operation modifies data member of source object
初始化列表中未调用拷贝构造函数Copy constructor does not call copy constructors of some members or base classes
类型不兼容导致无法覆盖Derived class method hides a virtual base class method instead of overriding it
Lambda 用作 typeid 操作数typeid 用于 lambda 表达式
构造函数中存在未初始化的成员Constructor does not initialize some members of a class
缺失显式关键字Constructor or user-defined conversion operator missing the explicit specifier
缺失虚拟继承A base class is inherited virtually and nonvirtually in the same hierarchy
对象切片Derived class object passed by value to function with base class parameter
未对可能过度对齐的类重载运算符 newAllocated storage might be smaller than object alignment requirement
部分覆盖重载的虚函数Class overrides fraction of inherited virtual functions with a given name
向封装数据成员返回非常量句柄Method returns pointer or reference to internal member of object
未在运算符中测试自赋值Copy assignment operator does not test for self-assignment

主题